在mail.php中添加replyTo在Laravel 5.1中不起作用

时间:2017-04-28 08:24:41

标签: email laravel-5.1

我有一个laravel 5.1应用程序。我在几个地方发送电子邮件。当我添加回复时,如下所示,它可以工作。

Mail::queue('emails.password_update', ['user' => $user, 'password' => $password], function($message) use ($user){
            $message->to($user->email, $user->name)->subject('Account Password Updated');
            $message->replyTo('noreply@divostar.com', 'DivoStar');
            $message->priority(1);
        });

但是,鉴于电子邮件是在多个地方发送的,而回复电子邮件是相同的。我不想在任何地方重复它。我所做的是在mail.php中添加一个条目,如下所示:

'replyTo' => ['address' => 'noreply@divostar.com', 'name' => 'DivoStar'],

并发送邮件:

 Mail::queue('emails.password_update', ['user' => $user, 'password' => $password], function($message) use ($user){
                $message->to($user->email, $user->name)->subject('Account Password Updated');
                $message->priority(1);
            });

当我这样做时,它不起作用。邮件中没有回复。为什么mail.php中的条目没有被读取?

2 个答案:

答案 0 :(得分:0)

Laravel 5.1没有使用配置实现全局回复。您可以在此处的源代码中看到https://github.com/laravel/framework/blob/5.1/src/Illuminate/Mail/MailServiceProvider.php#L22

最好的方法是在config / mail.php中添加配置条目

'replyTo' => ['address' => 'noreply@divostar.com', 'name' => 'DivoStar'],

无论你在哪里发邮件,都要做

Mail::queue('emails.password_update', ['user' => $user, 'password' => $password], function($message) use ($user){
        $message->to($user->email, $user->name)->subject('Account Password Updated');
        $message->replyTo(config('mail.replyTo.address'), config('mail.replyTo.name');
        $message->priority(1);
    });

另一种替代解决方案是编写一个自定义包装类来调用它" MailerService"它只会调用Default Laravel邮件程序,但这次是自定义回复。

答案 1 :(得分:0)

从Laravel 5.3开始,您可以像这样添加对配置的全局回复:

'reply_to' => ['address' => 'noreply@divostar.com', 'name' => 'DivoStar'],