PHP基于IMAP收取邮件的方法示例

发布时间 - 2026-01-11 02:40:38    点击率:

本文实例讲述了PHP基于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;$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相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP运算与运算符用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # IMAP  # 收取邮件  # c#使用IMap收取163邮件的方法示例  # c#使用S22.Imap收剑灵激活码邮件代码示例(imap收邮件)  # Java+Nginx实现POP、IMAP、SMTP邮箱代理服务  # PHP基于imap获取邮件实例  # 用PHP读取IMAP邮件  # 使用c#+IMap实现收取163邮件  # 位址  # 转成  # 内文  # 腾讯  # 错误信息  # 到它  # 操作技巧  # 电子邮件  # 相关内容  # 过了  # 轻车熟路  # 感兴趣  # 给大家  # 写了  # 刚开始  # 可以实现  # 对我来说  # 更多关于  # 所述  # 程序设计 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  北京专业网站制作设计师招聘,北京白云观官方网站?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Laravel如何处理和验证JSON类型的数据库字段  利用JavaScript实现拖拽改变元素大小  Android自定义listview布局实现上拉加载下拉刷新功能  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  javascript基于原型链的继承及call和apply函数用法分析  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  如何在 Pandas 中基于一列条件计算另一列的分组均值  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  如何在Windows服务器上快速搭建网站?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Linux安全能力提升路径_长期防护思维说明【指导】  PythonWeb开发入门教程_Flask快速构建Web应用  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel如何使用.env文件管理环境变量?(最佳实践)  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  如何在自有机房高效搭建专业网站?  Python函数文档自动校验_规范解析【教程】  如何在腾讯云服务器上快速搭建个人网站?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  网站页面设计需要考虑到这些问题  JS去除重复并统计数量的实现方法  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  简历在线制作网站免费版,如何创建个人简历?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  JavaScript模板引擎Template.js使用详解  Laravel如何配置和使用缓存?(Redis代码示例)  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  微信小程序 闭包写法详细介绍  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何在云指建站中生成FTP站点?  如何在景安云服务器上绑定域名并配置虚拟主机?  使用Dockerfile构建java web环境  Laravel如何记录自定义日志?(Log频道配置)  高端企业智能建站程序:SEO优化与响应式模板定制开发  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  如何正确下载安装西数主机建站助手?