我正在阅读邮件并将其内容存储到文件中。
它一般都在工作,但我有一些邮件包含以下标题:
Content-Type:text / html;字符集= “UTF-8” Content-Transfer-Encoding:base64
mb_detect_encoding($message)
返回ASCII。
当我尝试阅读它并将内容写入文件时,我会得到神秘的文字。你能帮我吗?我尝试过任何我知道的编码。输出总是空的或神秘的。
我的代码:
$message = imap_fetchbody($imap,$mail,1);
$message = utf8_encode(imap_base64($message));
我尝试了不同的编码方法:
$message = utf8_encode(imap_base64($message));
//cryptic output
$message = trim(utf8_encode(quoted_printable_decode($message)));
//cryptic output
$message = imap_base64($message);
//empty output
$message = imap_binary($message);
//cryptic output
$message = imap_8bit($message);
//cryptic output
$message = utf8_encode(quoted_printable_decode(imap_base64($message)));
//empty output
$message = trim(utf8_encode(quoted_printable_decode(imap_qprint($message))));
//cryptic output
但我除了神秘的输出外什么都没有:
hyemVleGRiMXJ6ZWRlXw0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9InV0Zi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0DQoNClBHaDBiV3dnZUcxc2JuTTZka
答案 0 :(得分:0)
经过大量时间的烧毁,我终于做到了。
问题是,邮件标题也被写入邮件正文。我不知道为什么,但我所要做的就是删除邮件正文(substr)中的邮件头,然后用$message = utf8_encode(imap_base64($message));
解码它