我在alravel 5.7中创建了一个用于发送电子邮件的可发送类,但在获取名称时遇到了一些问题。
在config / mail.php中有一个配置:
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
但是我在.env中覆盖了
MAIL_FROM_NAME=test@test.com
MAIL_FROM_NAME='test user'
在发送带有mailable的电子邮件时,在构建方法中,我有:
return $this->from($this->from)
->subject($this->emailSubject)
->view('email_template')
->with('data', $this->data);
电子邮件已发送,并显示来自谁:(test@test.com),但该名称不可用。
为什么?
*更新*
我忘记清除缓存了:)
php artisan config:cache
php artisan config:clear
现在可以使用了。如果已在.env中覆盖,则不必使用from()方法
MAIL_FROM_NAME=
MAIL_FROM_NAME=
答案 0 :(得分:2)
如果与环境或使用的内容不同,请删除from方法
return $this->from(config('mail.from.address'), config('mail.from.name'))
->subject($this->emailSubject)
->view('email_template')
->with('data', $this->data);
答案 1 :(得分:2)
您没有将second argument传递给给出名称的Mailable::from()
。
但是,如果您的应用程序对所有电子邮件都使用相同的“发件人”地址,则在生成的每个可邮递类中调用
from
方法会很麻烦。相反,您可以在config/mail.php
配置文件中指定一个全局的“发件人”地址。如果可邮寄类中未指定其他“发件人”地址,则将使用此地址:
'from' => ['address' => 'example@example.com', 'name' => 'App Name'],
https://laravel.com/docs/5.7/mail#generating-mailables
换句话说,如果您不需要每个环境的返回地址,只需直接在config/mail.php
中设置值即可。