我有一个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中的条目没有被读取?
答案 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'],