Laravel邮件已发送,但仍会引发异常

时间:2019-10-04 01:46:59

标签: php laravel email swiftmailer

我正在laravel中发送电子邮件,如下所示:

A1: 22, B1: 19, C1: 11, D1: 17, E1: 08, F1: 01
A2: 08, B2: 17, C2: 22, D2: 01, E2: 19, F2: 11

视图“ email.email_view”仅包含以下内容:

Mail::send('email.email_view', [] , function($message) {

    $message->to('email@gmail.com', 'Receiver Name')
            ->subject('TTTTTT');
});

发生的情况是,电子邮件已发送,我在收件箱中收到了它,但仍然抛出此异常:

  

local.ERROR:连接到tcp://mail.myserver.net:2525超时   {“ exception”:“ [object](Swift_TransportException(code:0):连接   到tcp://mail.myserver.net:2525超时于   /home/public_html/test/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:473,   Swift_IoException(code:0):连接到tcp://mail.myserver.net:2525   于超时   /home/public_html/test/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:166)   [stacktrace]

如果您需要(stacktrace)告诉我在哪里将其放置在网上,那么我了解有在线工具吗?。

为什么会这样?如果在整个过程中引发异常,如何防止发送电子邮件?

1 个答案:

答案 0 :(得分:1)

错误回溯表明在套接字完成读取之前发生了超时。

https://github.com/swiftmailer/swiftmailer/blob/v6.2.1/lib/classes/Swift/Transport/StreamBuffer.php#L159

默认的15 seconds在从打开的套接字连接到电子邮件服务器的单个数据包读取之间有足够的时间间隔。

https://github.com/swiftmailer/swiftmailer/blob/v6.2.1/lib/classes/Swift/Transport/StreamBuffer.php#L279

我建议调查您的网络连接,或者调查为什么电子邮件服务器需要很长时间才能发送回数据包。

作为最后的手段,可以通过从服务容器解析Swift_Transport实例并在其上调用setTimeout方法来增加超时。在发送邮件之前执行此操作。

https://github.com/laravel/framework/blob/v6.4.0/src/Illuminate/Mail/MailServiceProvider.php#L103

app('swift.transport')->setTimeout(60);