Laravel Mail — использовать специальный символ в имени отправителя

#laravel #email #character

#laravel #Адрес электронной почты #символ

Вопрос:

Я использую Laravel 5.8. И то, что я пытаюсь сделать, это отправить электронное письмо с именем отправителя, которое содержит специальный символ, такой как TheTh@nos . И это не работает. Электронное письмо было отправлено, но имя отправителя отображаться не будет.

Это мой код:

 Mail::send('emails.purchase-token', $data, function($message){
    $message->from('noreply@thetanos.com', 'TheTh@nos');
    $message->subject('New Tokens Have Been Added To Your Wallet');
    $message->to("recipient01@gmail.com);
});
 

введите описание изображения здесь

Ответ №1:

Я почти уверен, что это связано с тем, как работает gmail (и большинство современных почтовых клиентов).

Когда вы помещаете @ символ в поле заголовка From, почтовый клиент думает, что вы пытаетесь подделать письмо, чтобы оно выглядело так, будто оно отправлено с другого адреса электронной почты, даже если TheTh@nos это не действительный адрес электронной почты.

Попробуйте использовать другие специальные символы в вашем from и посмотрите, работает ли это.

Кроме того, некоторые хостинг-провайдеры не позволяют изменять заголовок From при использовании их SMTP-сервера.

Комментарии:

1. если я использую gmail как SMTP, это работает …. но если я использую mandrillapp как smtp, это не будет работать.

2. Я не уверен на 100%, но вы можете попробовать mb_convert_encoding (‘TheTh @ nos’, ‘UTF-8’, ‘ASCII’);

3. вау … mb_convert_encoding работает… вы должны опубликовать как answer , и я отмечу это как правильный ответ..