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 - 未通过命令发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

未通过 google smtp 发送的电子邮件

GitLab 电子邮件未发送?

在 Excel 中使用 VBA 创建的电子邮件未发送

SMTP:邮件未通过 AWS Glue Python 作业发送

symfony2 电子邮件未在命令中发送

发送 AUTH LOGIN 命令失败。错误:无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件