为了账号安全,请及时绑定邮箱和手机立即绑定

PHP IMAP:如何获得正确的正文?

PHP IMAP:如何获得正确的正文?

PHP
LEATH 2022-06-11 16:56:31
我正在通过 PHP IMAP 插件连接到我的收件箱。下面是我的步骤联系//The location of the mailbox.$hostname = '{outlook.office365.com:993/imap/ssl/novalidate-cert}';//The username / email address that we want to login to.$username = 'username';//The password for this email address.$password = 'password';我正在进一步打开收件箱连接并查看收件箱中未看到的任何内容//Attempt to connect using the imap_open function.$inbox = imap_open($hostname,$username,$password);$mailboxes = imap_list($inbox, $hostname, '*');imap_reopen($inbox, $hostname.'INBOX');$emails = imap_search($inbox, 'UNSEEN');此外,我正在遍历所有电子邮件,并且它与标题配合得很好。我遇到的问题是身体。获取我正在使用的电子邮件正文//get message body$message = quoted_printable_decode(imap_fetchbody($inbox, $email_number, 2.1));if ($message == '') {  $message = quoted_printable_decode(imap_fetchbody($inbox, $email_number, 1));}因此,对 40 封电子邮件进行测试,其中 28 封电子邮件正确获取正文并存储到数据库中。12 封电子邮件获取的正文看起来像PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBLWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCglmb250LXdlaWdodDpib2xkO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9我应该如何阅读身体?这样我就可以让我的测试正确地通过所有的电子邮件?
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

我还找到了摆脱这些角色的方法。


我查看了编码,我正在根据编码数字进行解析,如下所示


$encoding = $structure->encoding;


if($encoding == 3) {

   $finalmsg = imap_base64($message);

} else if($encoding == 1) {

   $finalmsg = imap_8bit($message);

} else {

   $finalmsg = imap_qprint($message);

}

编码类型= 0时我仍然遇到问题。签名导致重大问题


查看完整回答
反对 回复 2022-06-11
  • 1 回答
  • 0 关注
  • 220 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信