[英]PHP mail utf-8 issues
我试图使用PHP mail()函数以utf-8
编码发送电子邮件。 这有一些问题。 如:
Content-Type: text/plain; charset=us-ascii
Content-Type: text/plain; charset=us-ascii
。 此行为不依赖于发送标头Content-Type: text/plain; charset=UTF-8
Content-Type: text/plain; charset=UTF-8
utf-8
字符组成,那么我会收到一个类似此Subject: =?us-ascii?Q?=3D=3FUTF-8=3FB=3Fw5HClsORwpfDkcKU=3F=3D?=
的双编码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的客户端
电子邮件是一种非常古老,过时且困难的技术。 对于字符编码尤其如此。 我建议使用库,例如PHPMailer 。 如果您坚持从头开始,那么真正的答案将超出您的问题范围。 浏览器,客户端等使此问题复杂化。 我无法告诉您问题的原因,但是解决方案是PHPMailer。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.