正确解码邮件正文(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
我正在阅读邮件并将其内容存储到一个文件中。
它正常工作,但我有一些邮件包含以下内容 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));