Php 如何根据应用程序环境在Laravel中发送电子邮件?
我有几个发送电子邮件的控制器,所有这些控制器都使用Php 如何根据应用程序环境在Laravel中发送电子邮件?,php,laravel,email,events,swiftmailer,Php,Laravel,Email,Events,Swiftmailer,我有几个发送电子邮件的控制器,所有这些控制器都使用illumb\Mail,它提供一个名为illumb\Mail\Events\MessageSending的事件,在发送消息时触发该事件 我想在此时截取消息,并将$变量更改为,根据\App::environment()值,用开发人员电子邮件替换其中的任何值 我在EventServiceProvider中添加了一个侦听器,接收MessageSending的实例,该实例将\Swift\u Message$event作为参数传递给侦听器的handle()
illumb\Mail
,它提供一个名为illumb\Mail\Events\MessageSending
的事件,在发送消息时触发该事件
我想在此时截取消息,并将$变量更改为,根据\App::environment()
值,用开发人员电子邮件替换其中的任何值
我在EventServiceProvider
中添加了一个侦听器,接收MessageSending
的实例,该实例将\Swift\u 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,但似乎没有什么不同
我做错了什么?你应该把universal放到.env
文件中,而不是试图在事件中覆盖它
因此,请将其放入.env
:
MAIL_TO_EMAIL=test@test.com
MAIL_TO_NAME=test
然后在config/mail.php
中:
'to' => [
'address' => env('MAIL_TO_EMAIL'),
'name' => env('MAIL_TO_NAME')
],
谢谢,但dd只是一个例子