#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
, и я отмечу это как правильный ответ..