Как изменить имя в почтовом уведомлении Laravel

Это проблема

Мне нужна помощь для этого. Спасибо

3 ответа

Решение

В config/mail.php

задавать from свойство как:

'from' => ['address' => 'someemail@somedomain.com', 'name' => 'Firstname Lastname']

Здесь адрес должен быть тем, который вы хотите отобразить из электронной почты, а имя должно быть тем, что вы хотите отобразить из имени.

PS Это будет настройка электронной почты по умолчанию для каждого отправляемого вами сообщения.

Ты можешь использовать

 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

В случае Google SMTP адрес отправителя не изменится, даже если вы укажете это в классе почты. Это связано с политикой Google Mail, а не с проблемой Laravel. Думаю, я поделюсь этим здесь.

Лучшим способом было бы добавить имена и значения переменных в .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 в отправляемом электронном письме.

Для тех, кто использует Laravel 5.8 и приземлился на этот вопрос, сделайте это, у меня получилось:

В функции сборки самой почты (не просмотра, а почты):

public function build()
{
    return $this
        ->from($address = 'noreply@domain.com', $name = 'Sender name')
        ->subject('Here is my subject')
        ->view('emails.welcome');
}

Удачного кодирования:)

  • Если вам нужны глобальные 'from name' и 'from emai l',

  • Создайте эти 2 ключа в файле.env

  • MAIL_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>

Я думаю, что у вас есть ошибка в вашем фрагменте кода. У тебя есть
from(config('app.senders.info'), 'My Full Name')
поэтому config('app.senders.info') возвращает массив.
Метод from должен иметь два аргумента: первый - строка, содержащая адрес, а второй - строка с именем отправителя. Так что вы должны изменить это на
from(config('app.senders.info.address'), config('app.senders.info.name'))

Другие вопросы по тегам