正确解码邮件正文(imap)

decode mailbody correctly (imap)

我正在阅读邮件并将其内容存储到一个文件中。

它正常工作,但我有一些邮件包含以下内容 header:

Content-Type: text/html;字符集="utf-8" Content-Transfer-Encoding: base64

mb_detect_encoding($message)

returns 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

但除了神秘的输出,我什么也得不到:

hyemVleGRiMXJ6ZWRlXw0KQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9InV0Zi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0DQoNClBHaDBicx=32dnZuTTcx[=nZUTT]

我花了很多时间终于做到了。

问题是,邮件 header 也写入了邮件 body。我不知道为什么,但我所要做的就是在使用 $message = utf8_encode(imap_base64($message));

解码之前删除邮件 body(substr)中的邮件 header