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

Adding replyTo in mail.php not working in Laravel 5.1

我有一个 laravel 5.1 应用程序。我在几个地方发送电子邮件。当我像下面那样添加 replyTo 时它起作用了。

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 中的条目未被读取?

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);
    });

另一种替代解决方案是编写一个自定义包装器 class 并将其称为 "MailerService",它只会调用默认 Laravel 邮件程序,但这次使用自定义回复。

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

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