Laravel电子邮件记录频道

时间:2018-11-18 15:27:20

标签: php laravel logging laravel-5.6 swiftmailer

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

PS:我确实知道有用于此目的的软件包,但是认为这应该足够简单以手动完成。

'email' => [
    'driver' => 'monolog',
    'handler' => Monolog\Handler\SwiftMailerHandler::class,
    'handler_with' => [
        'mailer' => ?,
        'message' => ?,
    ],
],

2 个答案:

答案 0 :(得分:0)

可能有点晚了,但是从Symfony SwiftMailer documentation开始,您应该使用类似这样的内容:

...
'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,
],
...

答案 1 :(得分:0)

使用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'])
    ],
],