Я пытаюсь отправить unicode emoji через PHPMailer (5.2), но отправленные вами письма получены со странными символами вместо emojis. В настоящее время я отправляю HTML-письма, в которых я просто echo
строку, содержащую некоторые utf-8 emoji, и проверяя источник электронной почты, строка, кажется, печатается правильно. Например:
echo "😁";
производит:
=F0=9F=98=81
в исходном коде электронной почты (это должно быть ОК).
Оказывается, 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';