Laravel电子邮件记录频道



我有一个Laravel 5.6项目,我想对它进行配置,以便通过电子邮件向我发送高级错误。我在logging.php配置文件中添加了一个电子邮件通道,并指定Monolog的Swiftmailer作为处理程序,但由于它需要一个mailer实例和构造函数中的消息,我不知道应该提供什么值。非常感谢您的帮助。

附言:我确实知道有这样的软件包,但我认为这应该足够简单,可以手动完成。

'email' => [
'driver' => 'monolog',
'handler' => MonologHandlerSwiftMailerHandler::class,
'handler_with' => [
'mailer' => ?,
'message' => ?,
],
],

使用Lavarel 7.x,您可以像这样解决

'smtp-sys' => [
'driver' => 'monolog',
'level' => 'info',
'handler' => SwiftMailerHandler::class,
'handler_with' => [
'mailer' => new Swift_Mailer( (new Swift_SmtpTransport(env('MAIL_HOST_SYS'), env('MAIL_PORT_SYS'), env('MAIL_ENCRYPTION', 'tls')))->setUsername(env('MAIL_USERNAME_SYS'))->setPassword(env('MAIL_PASSWORD_SYS'))),
'message' => (new Swift_Message('[LOG] Exception'))
->setFrom([env('MAIL_USERNAME_SYS') => 'Dev'])
->setTo([env('MAIL_USERNAME_SYS') => 'Dev'])
],
],

可能有点晚了,但根据Symfony SwiftMailer文档,您应该使用以下内容:

...
'email' => [
'driver' => 'monolog',
'level' => 'critical',
'handler' => SwiftMailerHandler::class,
'handler_with' => [
'mailer' => (new Swift_SmtpTransport(env('MAIL_HOST'), env('MAIL_PORT'), env('MAIL_ENCRYPTION')))
->setUsername(env('MAIL_USERNAME'))
->setPassword(env('MAIL_PASSWORD')),
'message' => (new Swift_Message('[LOG] Exception'))
->setFrom([env('LOG_MAIL_FROM_ADDRESS') => env('LOG_MAIL_FROM_NAME')])
->setTo([env('LOG_MAIL_TO_ADDRESS') => 'Dev'])
->setBody('Here is the message itself')
],
'formatter' => HtmlFormatter::class,
],
...

最新更新