Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果Laravel Mail抛出的SwiftTransport异常不';不要停止执行_Php_Laravel_Swiftmailer - Fatal编程技术网

Php 如果Laravel Mail抛出的SwiftTransport异常不';不要停止执行

Php 如果Laravel Mail抛出的SwiftTransport异常不';不要停止执行,php,laravel,swiftmailer,Php,Laravel,Swiftmailer,我正在调查一个遗留的Laravel系统的问题,其中使用Mail::send()facade发送的电子邮件偶尔会在日志中记录错误,但实际上不会抛出错误;也就是说,这些错误并没有停止应用程序的执行 邮件设置为在呈现视图之前发送。有时会记录SwiftTransport_异常,并且邮件未收到;但视图仍然呈现 我无法重现这些错误,但关键是要处理这里抛出的任何错误。我希望捕获这些错误,以便存储电子邮件参数并在以后重新发送 Laravel版本是5.1(我知道…),服务器是WindowsServer12RT,P

我正在调查一个遗留的Laravel系统的问题,其中使用Mail::send()facade发送的电子邮件偶尔会在日志中记录错误,但实际上不会抛出错误;也就是说,这些错误并没有停止应用程序的执行

邮件设置为在呈现视图之前发送。有时会记录SwiftTransport_异常,并且邮件未收到;但视图仍然呈现

我无法重现这些错误,但关键是要处理这里抛出的任何错误。我希望捕获这些错误,以便存储电子邮件参数并在以后重新发送

Laravel版本是5.1(我知道…),服务器是WindowsServer12RT,PHP--V7.1.0NTSCGI

代码很简单,没有try/catch或抛出:

\Mail::send(
   $templateName,
   $paramsArray,
   function($message){
      $message->subject($subject);
      $message->to($userEmail, $userName);
   }
);

以下是其中一个错误的示例:

[2020-04-07 08:18:59] local.ERROR: Swift_TransportException: Connection to tcp://smtp.office365.com:587 Timed Out in E:\inetpub\wwwroot\REDACTED\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php:404
Stack trace:
#0 E:\inetpub\wwwroot\REDACTED\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php(277): Swift_Transport_AbstractSmtpTransport->_getFullResponse(22)
#1 E:\inetpub\wwwroot\REDACTED\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\EsmtpTransport.php(270): Swift_Transport_AbstractSmtpTransport->executeCommand('\r\n.\r\n', Array, Array)
#2 E:\inetpub\wwwroot\REDACTED\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php(333): Swift_Transport_EsmtpTransport->executeCommand('\r\n.\r\n', Array)
#3 E:\inetpub\wwwroot\REDACTED\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php(428): Swift_Transport_AbstractSmtpTransport->_streamMessage(Object(Swift_Message))
#4 E:\inetpub\wwwroot\REDACTED\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php(443): Swift_Transport_AbstractSmtpTransport->_doMailTransaction(Object(Swift_Message), 'REDACTED..', Array, Array)
#5 E:\inetpub\wwwroot\REDACTED\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php(176): Swift_Transport_AbstractSmtpTransport->_sendTo(Object(Swift_Message), 'REDACTED...', Array, Array)
#6 E:\inetpub\wwwroot\REDACTED\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Mailer.php(85): Swift_Transport_AbstractSmtpTransport->send(Object(Swift_Message), Array)
#7 E:\inetpub\wwwroot\REDACTED\vendor\laravel\framework\src\Illuminate\Mail\Mailer.php(394): Swift_Mailer->send(Object(Swift_Message), Array)
#8 E:\inetpub\wwwroot\REDACTED\vendor\laravel\framework\src\Illuminate\Mail\Mailer.php(179): Illuminate\Mail\Mailer->sendSwiftMessage(Object(Swift_Message))
#9 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(6106): Illuminate\Mail\Mailer->send('emails.2fa', Array, Object(Closure))
#10 E:\inetpub\wwwroot\REDACTED\app\Http\Middleware\TwoFactorVerify.php(33): Illuminate\Support\Facades\Facade::__callStatic('send', Array)
#11 [internal function]: App\Http\Middleware\TwoFactorVerify->handle(Object(Illuminate\Http\Request), Object(Closure))
#12 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9660): call_user_func_array(Array, Array)
#13 E:\inetpub\wwwroot\REDACTED\app\Http\Middleware\Authenticate.php(45): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#14 [internal function]: App\Http\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#15 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9660): call_user_func_array(Array, Array)
#16 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#17 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9650): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#18 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(7553): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#19 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(7541): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#20 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(7526): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#21 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(2310): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#22 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#23 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9668): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#24 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(2925): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 [internal function]: Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9660): call_user_func_array(Array, Array)
#27 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(13019): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#28 [internal function]: Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#29 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9660): call_user_func_array(Array, Array)
#30 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(11611): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#31 [internal function]: Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#32 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9660): call_user_func_array(Array, Array)
#33 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(12756): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 [internal function]: Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9660): call_user_func_array(Array, Array)
#36 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(12693): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#37 [internal function]: Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#38 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9660): call_user_func_array(Array, Array)
#39 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(2982): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9660): call_user_func_array(Array, Array)
#42 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#43 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(9650): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#44 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(2257): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#45 E:\inetpub\wwwroot\REDACTED\bootstrap\cache\compiled.php(2240): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#46 E:\inetpub\wwwroot\REDACTED\public\index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#47 {main}  

异常是否可以异步返回?如果是这种情况,是否可以在NTS系统上侦听它?

我已检查了此问题:。您可以使用Mail::failures()检查是否出现问题。请注意,如果无法访问电子邮件地址,则不视为“失败”。如果出现故障,您可能会在数据库中的某个地方标记为故障,并且可能需要重新发送。@RobBiermann谢谢,这可能会非常有用!是的,在这种情况下,我并不担心电子邮件是否会反弹。这是一个电子邮件验证的事情,所以反弹就像收据一样好。失败()计数的持续时间是多少?这是按要求的吗,你知道吗?我找不到任何关于它的好文档。我不确定它的持久性。我认为它是基于请求的,因为这种逻辑通常存储在静态成员或单例中,在每个请求结束后重置。我是这么想的,但无法证实;)传奇,谢谢!我已检查此问题:。您可以使用Mail::failures()检查是否出现问题。请注意,如果无法访问电子邮件地址,则不视为“失败”。如果出现故障,您可能会在数据库中的某个地方标记为故障,并且可能需要重新发送。@RobBiermann谢谢,这可能会非常有用!是的,在这种情况下,我并不担心电子邮件是否会反弹。这是一个电子邮件验证的事情,所以反弹就像收据一样好。失败()计数的持续时间是多少?这是按要求的吗,你知道吗?我找不到任何关于它的好文档。我不确定它的持久性。我认为它是基于请求的,因为这种逻辑通常存储在静态成员或单例中,在每个请求结束后重置。我是这么想的,但无法证实;)传奇,谢谢!