《PHP学习:PHP基于IMAP收取邮件的方法示例》要点:
本文介绍了PHP学习:PHP基于IMAP收取邮件的方法示例,希望对您有用。如果有疑问,可以联系我们。
本文实例讲述了PHP基于IMAP收取邮件的方法.分享给大家供大家参考,具体如下:PHP应用
因需要处理公司企业邮箱被退信邮件问题:刚开始的思路是通过模拟登陆,对邮件进行抓取,(这种事情对我来说,做过了很多次,轻车熟路),不过邮箱还是有点复杂的,PHP应用
后来想起做邮件发送时有用到smtp来发送邮件,记得也可以收取邮件,在腾讯企业邮箱帮助http://service.exmail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1000584PHP应用
看到IMAP和POP都可以实现收取邮件,再发现PHP有内置的IMOP函数,写了示例:PHP应用
//以腾讯企业邮箱做了测试
$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;$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函数库:PHP应用
转载请注明本页网址:
http://www.vephp.com/jiaocheng/362.html