首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP邮件utf-8期

PHP邮件utf-8期
EN

Stack Overflow用户
提问于 2015-09-10 14:44:37
回答 1查看 1.6K关注 0票数 0

我尝试使用PHP () func以utf-8编码方式发送电子邮件。这有一些问题。例如:

  1. 如果在一堆电子邮件中存在unicode字符,那么我就会收到一封标题为“Content:application/octet”的电子邮件。否则,如果没有unicode字符,我就得到了Content-Type: text/plain; charset=us-ascii。此行为不依赖于发送报头Content-Type: text/plain; charset=UTF-8
  2. 如果主题由根据utf-8编码的RFC2047字符组成,那么我将收到一个像Subject: =?us-ascii?Q?=3D=3FUTF-8=3FB=3Fw5HClsORwpfDkcKU=3F=3D?=这样的双重编码主题。而不是预期的Subject: =?UTF-8?B?w5HClsORwpfDkcKU?=

示例:

代码语言:javascript
复制
$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);

以下是接收到的标题的一部分:

代码语言:javascript
复制
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的客户端

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-10 15:41:42

电子邮件是一种非常古老、过时和困难的技术。字符编码尤其如此。我建议使用一个库,比如PHPMailer。如果你坚持从头开始做这件事,那么真正的答案将超出你问题的范围。浏览器、客户端以及更复杂的问题。我不能告诉你问题的原因,但解决办法是PHPMailer。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32505043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档