【问题标题】:Send unicode emoji with PHPMailer使用 PHPMailer 发送 unicode emoji
【发布时间】:2017-01-14 21:39:33
【问题描述】:

我正在尝试通过 PHPMailer (5.2) 发送 unicode 表情符号,但我发送的电子邮件收到的是奇怪的字符而不是表情符号。 我目前正在发送 HTML 电子邮件,其中我只是 echo 一个包含一些 utf-8 表情符号的字符串,并检查电子邮件源,该字符串似乎打印正确。例如:

echo "????";

产生:

=F0=9F=98=81

在电子邮件源代码中(应该没问题)。

【问题讨论】:

  • 您看到的是quoted-printable 传输编码,这是正确的,尽管正如您所说,您需要告诉PHPMailer 使用UTF-8 字符集。

标签: php email unicode phpmailer emoji


【解决方案1】:

事实证明,PHPMailer 在 HTML 电子邮件中默认使用 charset=iso-8859-1(在电子邮件标头中您会找到 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';

【讨论】:

    【解决方案2】:

    我需要使用稍微不同的:

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

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 2014-08-30
      • 1970-01-01
      • 2021-08-16
      • 2017-11-17
      • 2014-12-21
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多