Symfony3 - 未通过命令发送电子邮件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Symfony3 - 未通过命令发送电子邮件相关的知识,希望对你有一定的参考价值。
我不能发送来自Symfony3中的命令的电子邮件。
我的代码:
$message = Swift_Message::newInstance()
->setSubject('A subject')
->setFrom('email@site.com')
->setTo('email@site.com')
->setBody('content', 'text/html');
$mailer = $this->getContainer()->get('mailer');
$mailer->send($message);
Config.yml
# Swiftmailer Configuration
swiftmailer:
transport: '%mailer_transport%'
host: '%mailer_host%'
username: '%mailer_user%'
password: '%mailer_password%'
port: '%mailer_port%'
encryption: '%mailer_encryption%'
spool: { type: memory }
Parameters.yml
mailer_transport: smtp
mailer_host: myhostfromovh
mailer_encryption: null
mailer_port: 587
mailer_user: myuser
mailer_password: mypassword
我没有收到任何错误,但我的邮箱中没有收到任何电子邮件。 :(
而且,当我在命令行中写入时:
php app/console swiftmailer:email:send
我有 :
[2017-12-22 13:31:12] app.ERROR: Exception occurred while flushing email queue: Connection could not be established with host myhostfromovh [Connection refused #111]
我通过smtp.gmail.com或ns0.ovh.net(使用PORT和USER / PASSWORD)更改了我的自定义主机myhostfromovh,无所事事,它不起作用。 :-(
但是!当我在Controller中执行相同的代码时没问题,我收到了邮件。所以我不明白。
帮我 ! O /
答案
您已在swiftmail中启用了电子邮件队列,这意味着电子邮件将在内核事件终止期间排队并发送(在您已将响应发送到客户端之后)。
您应该在var / logs / prod.log上有控制器的错误
似乎您的主机不允许连接到该主机:端口。可能的原因?
- 您的IP已被禁止
- 错误的IP /端口(配置)
- 服务提供商/企业/大学防火墙阻止传出smtp连接(现在很常见)
安装mailcatcher https://mailcatcher.me/并尝试将电子邮件发送到您当地的smtp服务器。
以上是关于Symfony3 - 未通过命令发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
SMTP:邮件未通过 AWS Glue Python 作业发送
发送 AUTH LOGIN 命令失败。错误:无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件