Symfony3 - 未通过命令发送电子邮件

问题描述 投票:0回答:1

我不能发送来自Symfony3中的命令的电子邮件。

我的代码:

$message = \Swift_Message::newInstance()
        ->setSubject('A subject')
        ->setFrom('[email protected]')
        ->setTo('[email protected]')
        ->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 /

php symfony email command swiftmailer
1个回答
0
投票

您已在swiftmail中启用了电子邮件队列,这意味着电子邮件将在内核事件终止期间排队并发送(在您已将响应发送到客户端之后)。

您应该在var / logs / prod.log上有控制器的错误

似乎您的主机不允许连接到该主机:端口。可能的原因?

  • 您的IP已被禁止
  • 错误的IP /端口(配置)
  • 服务提供商/企业/大学防火墙阻止传出smtp连接(现在很常见)

安装mailcatcher https://mailcatcher.me/并尝试将电子邮件发送到您当地的smtp服务器。

© www.soinside.com 2019 - 2024. All rights reserved.