2016-09-07 6 views
3

Я пытаюсь отправить unicode emoji через PHPMailer (5.2), но отправленные вами письма получены со странными символами вместо emojis. В настоящее время я отправляю HTML-письма, где я просто echo строку, содержащую некоторый utf-8 emoji и проверяющий источник электронной почты, строка, кажется, печатается правильно. Например:Отправить unicode emoji с PHPMailer

echo ""; 

производит:

=F0=9F=98=81 

в исходном коде электронной почты (который должен быть в порядке).

+1

Что вы видите это кавычко для печати кодирования передачи, и это правильно, хотя, как вы говорите, вы должны сказать PHPMailer использовать кодировку UTF-8. – Synchro

ответ

4

Оказывается, что PHPMailer использует Charset = ISO-8859-1 по умолчанию в HTML-писем (в заголовке электронной почты вы найдете Content-Type: text/html; charset=iso-8859-1 в то время как вы должны использовать UTF-8:. Content-Type: text/html; charset=UTF-8

Вы можете установить кодировка в PHPMailer, выполнив:

$mail = new PHPMailer(); 
$mail->CharSet = 'UTF-8';