加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

PHP imap问题

发布时间:2021-07-06 05:23:29 所属栏目:大数据 来源: https://www.jb51.cc
导读:我需要能够从PHP脚本使用我的Gmail.但无论我尝试什么,消息体都出现了所有蹩脚的字符,如= 3D和随机等号.有时它会以base64形式出现,或者根本没有.如果没有可用的html,我如何获取电子邮件并在HTMLPurifier中发送干净的html或纯文本. $overview = imap_fetch_ove

我需要能够从PHP脚本使用我的Gmail.但无论我尝试什么,消息体都出现了所有蹩脚的字符,如= 3D和随机等号.有时它会以base64形式出现,或者根本没有.如果没有可用的html,我如何获取电子邮件并在HTMLPurifier中发送干净的html或纯文本.

$overview = imap_fetch_overview($inBox,$email_number,0);

$body_pre = imap_fetchbody($inBox, $email_number, 2.1); 

$message = imap_fetchbody($inBox, $email_number, 2.2); 

$message = base64_decode($message);

if (empty($message))
 {
  $message = $body_pre;
  $message = preg_replace('@(https?://([-w.]+)+(:d+)?((/[w/_.%-+~]*)?(?S+)?)?)@', '<a href="$1">$1</a>',$message);
$message = '<pre>'.htmlentities($message).'</pre>';  

}else{

 $cleanconfig = HTMLPurifier_Config::createDefault();
 $cleanconfig->set('Core.Encoding', 'UTF-8');
 $cleanconfig->set('HTML.Doctype', 'HTML 4.01 Transitional');
 $purifier = new HTMLPurifier($cleanconfig);

  $message = $purifier->purify($message);

 }

这段代码,$message只是空白.

解决方法:

您假设您的邮件始终位于2.2位置?绝对没有保证……取决于发送什么信息你计划文本(只有一个身体),html /文本(两个),附件(三个加)回复另一个电子邮件(然后另一个电子邮件将是一个身体与它是自己的子体).

= 3D(引用的可打印)和base64数据是由于消息体编码.看看imap_fetchstructure,它解释了它们在消息上有多少部分(你可以通过它搜索查找文本),并查看每个正文的 – >类型组件以了解它的编码(type = 4引用可打印, type = 3是base64)

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读