我尝试使用PHP () func以utf-8编码方式发送电子邮件。这有一些问题。例如:
Content-Type: text/plain; charset=us-ascii。此行为不依赖于发送报头Content-Type: text/plain; charset=UTF-8。utf-8编码的RFC2047字符组成,那么我将收到一个像Subject: =?us-ascii?Q?=3D=3FUTF-8=3FB=3Fw5HClsORwpfDkcKU=3F=3D?=这样的双重编码主题。而不是预期的Subject: =?UTF-8?B?w5HClsORwpfDkcKU?=示例:
$subject = 'іїє';
$body = 'іїє';
$headers = "Content-Type: text/plain; charset=UTF-8\r\n"
. "MIME-Version: 1.0\r\n";
mail('some-address@gmail.com', mb_encode_mimeheader($subject, 'UTF-8', 'B'), $body, $headers);以下是接收到的标题的一部分:
Subject: =?us-ascii?Q?=3D=3FUTF-8=3FB=3Fw5HClsORwpfDkcKU=3F=3D?=
User-Agent: Heirloom mailx 12.5 6/20/10
MIME-Version: 1.0
Content-Type: application/octet-stream
Content-Transfer-Encoding: 8bit
С–С—С”随着MTA在服务器上的安装,后缀。作为使用gmail的客户端
发布于 2015-09-10 15:41:42
电子邮件是一种非常古老、过时和困难的技术。字符编码尤其如此。我建议使用一个库,比如PHPMailer。如果你坚持从头开始做这件事,那么真正的答案将超出你问题的范围。浏览器、客户端以及更复杂的问题。我不能告诉你问题的原因,但解决办法是PHPMailer。
https://stackoverflow.com/questions/32505043
复制相似问题