【发布时间】:2018-01-23 13:05:46
【问题描述】:
我有几个发送电子邮件的控制器,它们都使用Illuminate\Mail,它提供了一个名为Illuminate\Mail\Events\MessageSending 的事件,该事件在发送消息时触发。
我想在此时截取消息并更改 $to 变量,用开发人员电子邮件替换其中的任何值,具体取决于 \App::environment() 值。
我在EventServiceProvider 中添加了一个监听器,接收MessageSending 的一个实例,它将\Swift_Message $event 作为参数传递给监听器的handle() 方法。
但是,我被困在这里。这是我所做的:
// dd()'s are removed in final code, they are here just as examples
// array with real emails
dd($event->message->getTo());
if (!\App::environment('production')) {
$event->message->SetTo(['developer@test.com']);
}
// developer@test.com
dd($event->message->getTo());
return $event;
它改变了 $event,但似乎没有什么不同。
我做错了什么?
【问题讨论】:
标签: php laravel email events swiftmailer