Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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中发送电子邮件?_Php_Laravel_Email_Events_Swiftmailer - Fatal编程技术网

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只是一个例子