[英]How to get special characters of the body of an email using imap with PhP?
我正在将imap与php结合使用,以获取电子邮件的正文。
到目前为止的代码,最后没有得到特殊字符和奇怪的格式。 例如,如果我给自己发送一封电子邮件(使用常规的电子邮件客户端,例如Apple Mail),其中包含:
用字符éà和一些字符测试! 那块石头。
我得到的PHP是:
用字符= C3 = A9 = C3 = A0和一些字符测试! 那块石头。=
我试图通过带有这些标头的php的邮件功能重新发送正文,但是我仍然遇到相同的问题。
$headers="From: address@email.com" . "\r\n" . "MIME-Version: 1.0" . "\r\n" . "Content-type:text/html;charset=UTF-8";
mail($sendTo, $message, $noBody, $headers);
我尝试过addslashes()
,它也没有帮助。
我的代码示例在这里:
$imapLink=imap_open("{".$mailbox."}INBOX",$username,$password);
$mailBoxInfos = imap_check($imapLink);
$mailList = imap_fetch_overview($imapLink,"1:".$mailBoxInfos->Nmsgs);
if(isset($mailList))
{
$numMess = imap_num_msg($imapLink);
while($numMess>0) {
$message = imap_body($imapLink, $numMess);
$numMess --;
}
}
$imapClose = imap_close($imapLink);
希望你能帮助我!
提前致谢!
亚瑟
您在文本中看到的=XX
称为“带报价的内容”。 用于显示无法以7位显示的字符。
您可以使用quoted_printable_decode()将其转换回可读的字符串。
所以这应该工作:
$message = imap_body($imapLink, $numMess);
$message = quoted_printable_decode($message); // <-- add this line
$numMess --;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.