如何在 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 namefrom 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 中将数据插入表格并获取电子邮件通知?

Laravel 5 重置密码通知不会发送

在 WooCommerce 电子邮件通知中将发件人名称更改为订单元数据中的值

如何在没有通知和确认过程的情况下更改 WordPress 中的主管理员电子邮件地址

Maximo 7.6 更改状态对话框(通知电子邮件字段)默认为空白

laravel 发送邮件