即使错误的服务器,Symfony中的Swiftmailer也不会返回错误

时间:2017-06-27 17:24:24

标签: symfony swiftmailer

我刚刚开始使用Swiftmailer和Symfony 3并且它正在发送电子邮件,但是当我故意插入配置错误时,比如更改服务器的名称而导致错误,我不会得到来自"发送"的任何错误方法。代码如下:

$message = new \Swift_Message('Teste SICOS');

$message->setFrom(['nao-responda@sicos.xxx.gov.br' => 'SICOS'])
    ->setTo('joaoxxx@gmail.com')
    ->setBody("teste");
    $res = $this->get("mailer")->send($message, $failures);
    if (!$res){
        $msg = "houve um erro no envio do e-mail. ".$failures;
    } else {
        $msg = "E-mail enviado.";
    }
    dump($failures);

在config.yml中我使用:

swiftmailer:
    host:      xxxx.xxxx.xxxx.xxx
    port:      25
    spool:     { type: memory }

当我使用正确的服务器配置和错误的服务器配置时,send方法$res的结果都是1,我认为这意味着,电子邮件已经已经送走了。但是分析器确实显示以下错误:

Exception occurred while flushing email queue: Connection could not be established with host xxxx [php_network_getaddresses: getaddrinfo failed: Este host n�o � conhecido. #0]

为什么send方法没有返回错误,如何让它返回错误,所以我可以向用户显示一条消息说出错了?

1 个答案:

答案 0 :(得分:1)

似乎问题在于配置

spool: { type: memory }

启用此功能后,电子邮件不会立即发送,但会保存以便稍后发送。