首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP邮件编码主题行

PHP邮件编码主题行
EN

Stack Overflow用户
提问于 2018-08-28 01:37:32
回答 2查看 0关注 0票数 0

当我尝试从PHP发送HTML编码的电子邮件时,如果主题行包含特殊字符"Here's the information you requested",则PHP将其编码为读取"Here's the information you requested."

我该如何解决?

以下是使用PHP mail()的代码:

代码语言:javascript
复制
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= 'To: ' . $mod_params['name'] . '<' . $mod_params['email'] . '>' . "\r\n";

$headers .= 'From: <do_not_reply@a4isp.com>' . "\r\n";  

$email_to = $mod_params['email'];

$email_sub = "Here's the Information You Requested";

$body = html_entity_decode("<html><body>" . $email_html_body . "</body></html>");

mail($email_to,$email_sub,$body,$headers);

它给出了与通过SugarPHPMailer类运行它相同的错误。

EN

回答 2

Stack Overflow用户

发布于 2018-08-28 09:57:55

尝试这个:

代码语言:javascript
复制
 $newsubject='=?UTF-8?B?'.base64_encode($subject).'?=';

这样您就不依赖于PHP或MTA的编码,您可以完成这项工作,而邮件客户端应该理解它。您的新主题中不会出现任何特殊字符,因此在发送电子邮件时不会出现任何问题。

票数 0
EN

Stack Overflow用户

发布于 2018-08-28 11:34:22

我在一个正在研究的Wordpress插件中遇到了类似的问题,我一遍又一遍地尝试不同的建议,从这里和其他各种Google搜索结果中尝试不同的建议。我终于找到了一个适合我情况的解决方案,所以我会分享它。我会说这是保罗的解决方案,我最初尝试过但它不起作用,但原因是我试图“速记”解决方案。在我的情况下,只是调用html_entity_decode()不起作用。为什么?如果我更仔细地阅读PHP文档,那将是显而易见的。我的问题是单引号上的编码,html_entity_decode()的默认值是'ENT_COMPAT',它只留下单引号。解决方案是设置所有参数并且有效。实际上,我可能已经离开了字符集,因为我编码UTF-8,但我觉得我很彻底。

代码语言:javascript
复制
$decoded_str = html_entity_decode (  $value_to_decode, ENT_QUOTES, 'UTF-8' );

这里的教训很好,“阅读文档”。我并不是说你没有(你可能做过),但我们中的很多人都匆匆忙忙地盯着那些坐在那里的解决方案,如果我们只是看看那就盯着我们。

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

https://stackoverflow.com/questions/-100000676

复制
相关文章

相似问题

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