Hello, I’ve been trying for hours to get the form working in the modular page of the Typhoon theme. The documentation does not seem up to date. I need any help I can get. I have filled in the to and from email addresses in the email plugin. I am developing on localhost (webserver Laragon)
This is the frontmatter I am using:
---
title: 'Neem contact op'
subtitle: 'Meer informatie nodig?'
section_classes: 'bg-primary-darker text-primary-lighter py-8 md:py-24'
title_text: light
form:
name: contact
action: /#neem-contact-op
inline_errors: true
fields:
name:
label: Name
display_label: false
placeholder: '* Je naam'
autocomplete: 'on'
type: text
validate:
required: true
email:
label: Email
display_label: false
placeholder: '* Je emailadres'
type: email
validate:
required: true
phone:
label: Phone
display_label: false
placeholder: 'Je telefoonnummer (optioneel)'
type: text
message:
label: Message
display_label: false
placeholder: '* Je bericht'
type: textarea
rows: 4
validate:
required: true
buttons:
submit:
type: submit
classes: 'bg-gray-600 hover:bg-gray-900'
value: 'Versturen'
process:
message: '<b>Merci!</b> Wij hebben je bericht gekregen en zullen asap contact opnemen.'
@TonHaarmans, I have no Typhoon license, so I cannot help you with that specific theme.
However… is seems to be more of a form issue then a theme issue.
As @pamtbaau said, you first need a process.email
config part. But still, I wasn’t able to make Swiftmailer work on Laragon (TBH didn’t try much), had to set up SMTP and it worked perfectly fine
Hi, Thanks for your reply
If I add the lines you suggested to process, then when submitting I get the following error:
Server Error
Sorry, something went terribly wrong!
0 - Process could not be started [The system cannot find the path specified. ]
BTW, I never managed to send a form with Quark. I used formmail.php instead…
And I am very new to Laragon. Have to look into that…
Thanks
@TonHaarmans, Not knowing much about your infra, I can only ask questions…
- What is the error output of ‘/logs/grav.log’
- What’s is the content of ‘/user/config/plugins/email.yaml’
Don’t forget to remove any sensitive data…
- Have you had a chance to consult the README of plugin Email?
Thanks again for your patience and replying!
This is email.yaml:
enabled: true
from: <my email address>
from_name: <my name>
to: <my email address>
to_name: <my name>
queue:
enabled: false
flush_frequency: '* * * * *'
flush_msg_limit: 10
flush_time_limit: 100
mailer:
engine: sendmail
smtp:
server: smtp.gmail.com
port: 465
encryption: none
user: <my gmail email-address>
password: <my gmail password>
auth_mode: OAuth2
sendmail:
bin: '/usr/sbin/sendmail -bs'
content_type: text/html
debug: false
charset: null
cc: null
cc_name: null
bcc: null
reply_to: null
reply_to_name: null
body: null
And here is grav.log
[2021-02-04 07:07:19] grav.CRITICAL: Process could not be started [Het systeem kan het opgegeven pad niet vinden. ] - Trace: #0 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\StreamBuffer.php(54): Swift_Transport_StreamBuffer->establishProcessConnection() #1 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php(143): Swift_Transport_StreamBuffer->initialize(Array) #2 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\SendmailTransport.php(50): Swift_Transport_AbstractSmtpTransport->start() #3 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mailer.php(65): Swift_Transport_SendmailTransport->start() #4 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\classes\Email.php(110): Swift_Mailer->send(Object(Swift_Message)) #5 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\email.php(163): Grav\Plugin\Email\Email->send(Object(Swift_Message)) #6 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\email\email.php(105): Grav\Plugin\EmailPlugin->sendFormEmail(Object(Grav\Plugin\Form\Form), Array, Array) #7 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(264): Grav\Plugin\EmailPlugin->onFormProcessed(Object(RocketTheme\Toolbox\Event\Event), 'onFormProcessed', Object(Symfony\Component\EventDispatcher\EventDispatcher)) #8 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(239): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'onFormProcessed', Object(RocketTheme\Toolbox\Event\Event)) #9 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'onFormProcessed', Object(RocketTheme\Toolbox\Event\Event)) #10 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Grav.php(537): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(RocketTheme\Toolbox\Event\Event), 'onFormProcessed') #11 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\form\classes\Form.php(919): Grav\Common\Grav->fireEvent('onFormProcessed', Object(RocketTheme\Toolbox\Event\Event)) #12 C:\Users\haarm\Documents\Sites\Curiosity\user\plugins\form\form.php(275): Grav\Plugin\Form\Form->post() #13 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(264): Grav\Plugin\FormPlugin->onPageInitialized(Object(RocketTheme\Toolbox\Event\Event), 'onPageInitializ...', Object(Symfony\Component\EventDispatcher\EventDispatcher)) #14 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(239): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'onPageInitializ...', Object(RocketTheme\Toolbox\Event\Event)) #15 C:\Users\haarm\Documents\Sites\Curiosity\vendor\symfony\event-dispatcher\EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'onPageInitializ...', Object(RocketTheme\Toolbox\Event\Event)) #16 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Grav.php(537): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(RocketTheme\Toolbox\Event\Event), 'onPageInitializ...') #17 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\PagesProcessor.php(44): Grav\Common\Grav->fireEvent('onPageInitializ...', Object(RocketTheme\Toolbox\Event\Event)) #18 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\PagesProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #19 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #20 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\TwigProcessor.php(38): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #21 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\TwigProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #22 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #23 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\AssetsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #24 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\AssetsProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #25 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #26 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\SchedulerProcessor.php(40): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #27 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\SchedulerProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #28 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #29 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\BackupsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #30 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\BackupsProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #31 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #32 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\TasksProcessor.php(69): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #33 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\TasksProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #34 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #35 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\RequestProcessor.php(63): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #36 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\RequestProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #37 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #38 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\ThemesProcessor.php(38): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #39 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\ThemesProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #40 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #41 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\PluginsProcessor.php(39): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #42 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\PluginsProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #43 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #44 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\InitializeProcessor.php(128): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #45 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Debugger.php(546): Grav\Common\Processors\InitializeProcessor::Grav\Common\Processors\{closure}() #46 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Processors\InitializeProcessor.php(129): Grav\Common\Debugger->profile(Object(Closure)) #47 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(50): Grav\Common\Processors\InitializeProcessor->process(Object(Nyholm\Psr7\ServerRequest), Object(Grav\Framework\RequestHandler\RequestHandler)) #48 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Framework\RequestHandler\Traits\RequestHandlerTrait.php(62): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #49 C:\Users\haarm\Documents\Sites\Curiosity\system\src\Grav\Common\Grav.php(282): Grav\Framework\RequestHandler\RequestHandler->handle(Object(Nyholm\Psr7\ServerRequest)) #50 C:\Users\haarm\Documents\Sites\Curiosity\index.php(58): Grav\Common\Grav->process() #51 {main} [] []
I did read just now the readme of the email plugin. It suggests to use the service of for instance SendGrid. I did not try that yet. I use gmail for my regular emails I send with Thunderbird…
@TonHaarmans,
Took the liberty to use your config and adapted it according the Gmail section in the README of the email plugin.
mailer:
engine: smtp # <-- Tell Email plugin to use the smpt definition.
smtp:
server: smtp.gmail.com
port: 587 # <-- different port
encryption: tls # <-- different encryption
user: <your name>
password: <your password>;
I now get a authentication error from Google Gmail. Which means, there is communication with Gmail, but login fails.
Maybe you need a look at the 3 setup steps noted in the readme:
- Enable IMAP in your Gmail
Settings
→ Forwarding and POP/IMAP
→ IMAP Access
- Enable
Less secure apps
in your user account settings
- If you have 2-factor authentication, you will need to create a unique application password to use rather than your personal password
Got it and made the changes. Now I get a new error: 0 - Auth mode oauth2 is invalid. I tried the value none and I also left the value empty., but got the same error.
Perhaps the login with Gmail failed because I changed the password…
@TonHaarmans, Maybe my snippet wasn’t clear enough about the auth_mode: OAuth2
setting.
Values of OAuth2
, none
and ' '
do indeed throw errors. No value, or `` do not throw errors (in my test setup) , but you can also remove it as shown in my snippet.
You might then get the error from Gmail that authentication failed. See the 3 setup steps mentioned.
I got it working!!! Thanks a lot for bearing with me. I apparently had to Enable Less secure apps
. My god! This stuff is not simple.
Maybe carefully reading the setup docs in the README of the plugin might have made it a bit easier? 