Отправить unicode emoji с помощью PHPMailer

Я пытаюсь отправить 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';