在config/mail.php
将from
属性设置为:
'from' => ['address' => '[email protected]', 'name' => 'Firstname Lastname']
在这里,地址应该是您要通过电子邮件显示的地址,名称应该是您要从名称中显示的名称。
附:这将是您发送的每封电子邮件的默认电子邮件设置。
您可以使用
Mail::send('emails.welcome', $data, function($message)
{
$message->from('[email protected]', 'Laravel');
$message->to('[email protected]')->cc('[email protected]');
});
更好的方法是在.env
文件中添加变量名称和值。
例:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="My Name"
[email protected]
注意最后两行。这些将与发送的电子邮件中的姓名和电子邮件字段相关联。
对于使用Laravel 5.8并登陆此问题的任何人,请试一试,它对我有用:
在邮件本身的构建函数内(不是视图,而是邮件):
public function build()
{
return $this
->from($address = '[email protected]', $name = 'Sender name')
->subject('Here is my subject')
->view('emails.welcome');
}
快乐编码:)
我认为你的代码片段中有错误。你有
from(config('app.senders.info'), 'My Full Name')
所以config('app.senders.info')返回数组。
方法应该有两个参数:第一个是字符串包含地址,第二个是名称为sender的字符串。所以你应该把它改成
from(config('app.senders.info.address'), config('app.senders.info.name'))
对于谷歌SMTP,即使您在邮件类中提供此地址,也不会更改发件人地址。这是由于谷歌邮件的政策,而不是Laravel问题。以为我会在这里分享。