如何在 Laravel 邮件通知中更改名称
Posted
技术标签:
【中文标题】如何在 Laravel 邮件通知中更改名称【英文标题】:How to change From Name in Laravel Mail Notification 【发布时间】:2017-06-17 18:15:06 【问题描述】:这就是问题所在:
我需要这方面的帮助。谢谢
【问题讨论】:
->from('example@example.com', 'Awesome Name')
【参考方案1】:
在config/mail.php
将from
属性设置为:
'from' => ['address' => 'someemail@somedomain.com', 'name' => 'Firstname Lastname']
在这里,地址应该是您要在电子邮件中显示的那个,而名称应该是您要在名称中显示的那个。
附:这将是您发送的每封电子邮件的默认电子邮件设置。
编辑:如果您需要通过代码将名称用作变量,您还可以按如下方式调用函数 from()(复制下面的 Brad Ahrens 答案,我认为这里值得一提):
return $this
->from($address = 'noreply@domain.com', $name = 'Sender name')
->subject('Here is my subject')
->view('emails.view');
【讨论】:
感谢您的回复,尽管我先找到它然后您的评论.. 当然可以。但是在上述评论中,您需要在每个 Mail::send() 方法中使用它。但在我的情况下,你不需要这样做。感谢您接受这个答案。 如果我们这样配置,是否可以覆盖上面注释中提到的发件人地址? 是的,你可以。请参阅下面来自@Haseena P A 的答案。 ->from('info@websitedomain.com', 'Website Name') 为我工作。谢谢。【参考方案2】:你可以使用
Mail::send('emails.welcome', $data, function($message)
$message->from('us@example.com', 'Laravel');
$message->to('foo@example.com')->cc('bar@example.com');
);
参考 - https://laravel.com/docs/5.0/mail
【讨论】:
【参考方案3】:更好的方法是在.env
文件中添加变量名称和值。
示例:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=example@example.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="My Name"
MAIL_FROM_ADDRESS=support@example.com
注意最后两行。这些将与发送的电子邮件中的 from name 和 from email 字段相关联。
【讨论】:
【参考方案4】:在使用 google SMTP 的情况下,即使您在邮件类中提供此地址,发件人地址也不会改变。 这是由于谷歌邮件的政策,而不是 Laravel 问题。 我想我会在这里分享它。
【讨论】:
【参考方案5】:对于使用 Laravel 5.8 并遇到此问题的任何人,试一试,它对我有用:
在邮件本身的构建函数中(不是视图,而是邮件):
public function build()
return $this
->from($address = 'noreply@domain.com', $name = 'Sender name')
->subject('Here is my subject')
->view('emails.welcome');
编码愉快:)
【讨论】:
【参考方案6】:如果你想要全局的'from name'和'from email',
在 .env 文件中创建这 2 个键
MAIL_FROM_NAME="global from name"
MAIL_FROM_ADDRESS=support@example.com
并删除控制器上的“从”。或 php 代码,如果您手动声明。 现在它可以通过名称和电子邮件访问。
config\mail.php
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'info@catandpillar@.com'),
'name' => env('MAIL_FROM_NAME', 'write name if not found in env'),
],
在我的控制器上。
$conUsBody = '';
$conUsBody .= '<h2 class="text-center">Hello Admin,</h2>
<b><p> '.trim($request->name).' Want some assesment</p></b>
<p>Here are the details:</p>
<p>Name: '.trim($request->name).'</p>
<p>Email: '.trim($request->email).'</p>
<p>Subject: '.trim($request->subject).'</p>';
$contactContent = array('contactusbody' => $conUsBody);
Mail::send(['html' => 'emails.mail'], $contactContent,
function($message) use ($mailData)
$message->to('vinay.kaithwas@gmail.com', 'Admin')->subject($mailData['subject']);
$message->attach($mailData['attachfilepath']);
);
return back()->with('success', 'Thanks for contacting us!');
我的刀片模板。
<body>
!! $contactusbody !!
</body>
【讨论】:
【参考方案7】:我认为您的代码片段有错误。你有from(config('app.senders.info'), 'My Full Name')
所以 config('app.senders.info') 返回数组。
方法 from 应该有两个参数:第一个是包含地址的字符串,第二个是包含发件人姓名的字符串。所以你应该把它改成from(config('app.senders.info.address'), config('app.senders.info.name'))
【讨论】:
以上是关于如何在 Laravel 邮件通知中更改名称的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 5.5 中将数据插入表格并获取电子邮件通知?
在 WooCommerce 电子邮件通知中将发件人名称更改为订单元数据中的值
如何在没有通知和确认过程的情况下更改 WordPress 中的主管理员电子邮件地址