• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP之IMAP收取邮件实例详解

php 搞代码 3年前 (2022-01-22) 14次浏览 已收录 0个评论

本文主要介绍PHP基于IMAP收取邮件的方法,结合实例形式分析了PHP基于IMAP接收邮件的相关设置与使用技巧,并附带了IMAP相关函数说明,需要的朋友可以参考下,希望能帮助到大家

因需要处理公司企业邮箱被退信邮件问题:刚开始的思路是通过模拟登陆,对邮件进行抓取,(这种事情对我来说,做过了很多次,轻车熟路),不过邮箱还是有点复杂的,

后来想起做邮件发送时有用到smtp来发送邮件,记得也可以收取邮件,在腾讯企业邮箱帮助http://service.exmail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1000584

看到IMAP和POP都可以实现收取邮件,再发现PHP有内置的IMOP函数,写了示例:

//以腾讯企业邮箱做了测试$mailServer="imap.exmail.qq.com"; //IMAP主机$mailLink="{{$mailServer}:143}INBOX" ; //imagp连接地址:不同主机地址不同$mailUser = '***'; //邮箱用户名$mailPass = '***'; //邮箱密码$mbox = imap_open($mailLink,$mailUser,$mailPass); //开启信箱imap_open$totalrows = imap_num_msg($mbox); //取得信件数for ($i=1<b>%本文@来源gao@!dai!ma.com搞$$代^@码!网</b><strong>搞代gaodaima码</strong>;$i<$totalrows;$i++){  $headers = imap_fetchheader($mbox, $i); //获取信件标头  $headArr = matchMailHead($headers); //匹配信件标头  $mailBody = imap_fetchbody($mbox, $i, 1); //获取信件正文}/** * * 匹配提取信件头部信息 * @param String $str */function matchMailHead($str){  $headList = array();  $headArr = array(    'from',    'to',    'date',    'subject'  );  foreach ($headArr as $key){    if(preg_match('/'.$key.':(.*?)[\n\r]/is', $str,$m)){      $match = trim($m[1]);      $headList[$key] = $key=='date'?date('Y-m-d H:i:s',strtotime($match)):$match;    }  }  return $headList;}

附上IMAP函数库:

imap_append:  附加字符串到指定的邮箱中。imap_base64:  解 BASE64 编码。imap_body:  读信的内文。imap_check:  返回邮箱信息。imap_close:  关闭 IMAP 链接。imap_createmailbox:  建立新的信箱。imap_delete:  标记欲删除邮件。imap_deletemailbox:  删除既有信箱。imap_expunge:  删除已标记的邮件。imap_fetchbody:  从信件内文取出指定部分。imap_fetchstructure:  获取某信件的结构信息。imap_header:  获取某信件的标头信息。imap_headers:  获取全部信件的标头信息。imap_listmailbox:  获取邮箱列示。imap_listsubscribed:  获取订阅邮箱列示。imap_mail_copy:  复制指定信件到它处邮箱。imap_mail_move:  移动指定信件到它处邮箱。imap_num_msg:  取得信件数。imap_num_recent:  取得新进信件数。imap_open:  打开 IMAP 链接。imap_ping:  检查 IMAP 是否连接。imap_renamemailbox:  更改邮箱名字。imap_reopen:  重开 IMAP 链接。imap_subscribe:  订阅邮箱。imap_undelete:  取消删除邮件标记。imap_unsubscribe:  取消订阅邮箱。imap_qprint:  将 qp 编码转成八位。imap_8bit:  将八位转成 qp 编码。imap_binary:  将八位转成 base64 编码。imap_scanmailbox:  寻找信件有无特定字符串。imap_mailboxmsginfo:  取得目前邮箱的信息。imap_rfc822_write_address:  电子邮件位址标准化。imap_rfc822_parse_adrlist:  解析电子邮件位址。imap_setflag_full:  配置信件标志。imap_clearflag_full:  清除信件标志。imap_sort:  将信件标头排序。imap_fetchheader:  取得原始标头。imap_uid:  取得信件 UID。imap_getmailboxes:  取得全部信件详细信息。imap_getsubscribed:  列出所有订阅邮箱。imap_msgno:  列出 UID 的连续信件。imap_search:  搜寻指定标准的信件。imap_last_error:  最后的错误信息。imap_errors:  所有的错误信息。imap_alerts:  所有的警告信息。imap_status:  目前的状态信息。

相关推荐:

PHP使用IMAP收取邮件

以上就是PHP之IMAP收取邮件实例详解的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP之IMAP收取邮件实例详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址