通过使用可邮寄邮件

时间:2018-11-05 16:58:48

标签: php laravel

我在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=

2 个答案:

答案 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中设置值即可。