[英]Symfony 3 - Swiftmailer not sending email
用户提交表单后,我尝试使用SwiftMailer(版本= Swift-5.4.8)发送电子邮件。 我无法确定为什么未发送电子邮件。 我只尝试使用gmail设置,因为听说它最容易使用(Web开发人员的新手)。
我尝试更改config.yml,parameters.yml
parameters:
database_host: 127.0.0.1
database_port: null
database_name: symfony
database_user: root
database_password: null
mailer_transport: gmail
mailer_encryption: ssl
mailer_auth_mode: login
mailer_host: smtp.gmail.com
mailer_user: myemail@gmail.com
mailer_password: mypass
secret: mysecret
swiftmailer:
transport: '%mailer_transport%'
host: '%mailer_host%'
username: '%mailer_user%'
password: '%mailer_password%'
spool: { type: memory }
$form = $this->createFormBuilder()
->add('from', EmailType::class)
->add('message', TextareaType::class)
->add('send',SubmitType::class)
->getForm()
;
if ($form->isSubmitted()){
$data = $form->getData();
$message = \Swift_Message::newInstance()
->setSubject('Join Our Team Request')
->setFrom($data['from'])
->setTo('myemail2@gmail.com')
->setBody(
$data['message'],'text/plain'
)
;
$this->get('mailer')->send($message);
}
return $this->render('xxx.html.twig', array("title" => "...","join_team_form" =>$form->createView()));
视图和表单正确呈现。 表单似乎正确提交,但是我从未收到电子邮件。 再次成为Web开发人员的新手,任何建议都值得赞赏。
编辑:我能够使用命令提示符和'php bin \\ console swiftmailer:email:send'命令成功配置和发送电子邮件。 问题是它正在使用dev_config文件,这是一个愚蠢的错误。 但是,当我仍然填写表格并单击“发送”按钮时,没有电子邮件被发送。 仅使用上面的命令。 有见识吗?
EDIT2:第一次编辑的解决方案正在运行“ composer update”。
尝试使用tls加密和smtp传输协议。 您的config.yml将类似于以下内容:
# Swiftmailer Configuration
swiftmailer:
transport: 'smtp'
host: 'smtp.gmail.com'
username: 'myemail@gmail.com'
password: 'mypass'
encryption: tls
auth_mode: login
并且,您必须激活对安全性较低的应用程序的访问,并在您的gmail帐户中禁用两步身份验证。
本文档介绍了在Symfony上使用gmail发送邮件的最佳做法
但是为此,您需要在应用程序中加载环境变量,我不知道这是您的情况。
下面应该工作。 将您的config.yml
更新为
swiftmailer:
url: 'gmail://%mailer_user%:%mailer_password%@localhost?encryption=tls&auth_mode=oauth'
spool: { type: 'memory' }
另一个建议是在发送邮件之前检查表格是否有效。 否则,如果from
为null
或""
from
则发送将失败
if ($form->isSubmitted() && $form->isValid()){ ... }
让我知道是否无效
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.