在 laravel 7.x 中发送邮件时如何指定非全局发件人名称

How to specify a non global from name when sending mail in laravel 7.x

我在本地环境中使用 laravel 7.x 和 mailgun 运行,一切似乎 运行 都很好。我希望能够在发送个人电子邮件时设置发件人“姓名”。

在关于“Configuring The Sender”的 Laravel 7.x 文档中,他们解释了如何发送电子邮件并指定“发件人地址”,但没有说明如何设置名称。

return $this->from('example@example.com')
            ->view('emails.orders.shipped');

他们还指定了如何设置一个名为 set

的全局发件人地址
'from' => ['address' => 'example@example.com', 'name' => 'App Name'],

我希望能够发送一封电子邮件,我可以在其中设置多个名称,具体取决于我从应用程序的哪个部分发送。 (例如,密码重置与使用通知不同)

什么有效

下面的例子returnsSwift_RfcComplianceException: Address in mailbox given [Test User <example@example.com>] does not comply with RFC 2822, 3.6.2

return $this->from('Test User <example@example.com>')
            ->view('emails.orders.shipped');

我也尝试使用全局方法中的数组语法,但这似乎对名称本身没有任何影响。

return $this->from([
    'address' => 'example@example.com',
    'name' => 'Test User'
])
->view('emails.orders.shipped');

是否可以使用此方法设置名称?

你应该使用这个语法:

$this->from('example@example.com','Example')->view('emails.orders.shipped');

我找不到合适的文档,但 laravel 电子邮件中使用了类似的语法。