我给你整理一份 PHP IMAP 最完整、最常用、实战能用的所有函数清单,带中文说明、用法、什么时候用,直接复制就能用

这是开发邮件接收必备的终极速查手册


一、连接 / 关闭 类(最基础)

1. imap_open()

打开 IMAP 连接

  1. $mbox = imap_open("{服务器:端口/imap/ssl}INBOX", "账号", "授权码");

2. imap_close()

关闭连接

  1. imap_close($mbox);

3. imap_ping()

检查连接是否还活着

  1. imap_ping($mbox); // true = 正常

二、获取邮箱信息类

4. imap_check()

获取当前邮箱状态(邮件总数、文件夹名)

  1. $info = imap_check($mbox);
  2. echo $info->Nmsgs; // 总邮件数

5. imap_num_msg()

直接获取邮件总数

  1. echo imap_num_msg($mbox);

6. imap_list()

获取所有文件夹(INBOX、已发送、垃圾箱等)

  1. imap_list($mbox, $host, "*");

7. imap_reopen()

切换文件夹

  1. imap_reopen($mbox, $host."Sent");

三、搜索邮件(你最常用)

8. imap_search()

搜索邮件(ALL、UNSEEN、FROM、SUBJECT 等)

  1. imap_search($mbox, "ALL", SE_UID);

四、邮件头部信息(标题、发件人、日期)

9. imap_headerinfo()

获取邮件头(标题、发件人、日期、是否已读)

  1. $header = imap_headerinfo($mbox, $msgno);

返回信息包括:

  • subject 标题
  • from 发件人
  • to 收件人
  • date 时间
  • Unseen 是否未读
  • UID

10. imap_fetchheader()

获取原始头部源码

  1. imap_fetchheader($mbox, $msgno);

五、邮件正文内容

11. imap_body()

获取邮件正文(简单版,可能乱码)

  1. imap_body($mbox, $msgno);

12. imap_fetchstructure()

获取邮件结构(附件、HTML、纯文本)

  1. imap_fetchstructure($mbox, $msgno);

13. imap_fetchbody()

获取指定部分正文(解析附件必备)

  1. imap_fetchbody($mbox, $msgno, "1"); // 文本
  2. imap_fetchbody($mbox, $msgno, "2"); // HTML

六、编码 / 解码(中文不乱码)

14. imap_utf8()

解码标题、发件人中文

  1. imap_utf8($header->subject);

15. imap_base64()

base64 解码

  1. imap_base64($content);

16. imap_qprint()

quoted-printable 解码

  1. imap_qprint($content);

七、UID 相关(最稳定、推荐使用)

17. imap_uid()

根据序号获取 UID

  1. $uid = imap_uid($mbox, $msgno);

18. imap_msgno()

根据 UID 获取序号(必须用!)

  1. $msgno = imap_msgno($mbox, $uid);

八、附件处理

19. imap_fetchstructure()

获取附件结构(文件名、类型、大小)

20. imap_mime_header_decode()

解码附件中文名

  1. imap_mime_header_decode($filename);

九、标记操作

21. imap_setflag_full()

标记邮件为 已读/删除/星标

  1. imap_setflag_full($mbox, $uid, "\\Seen", ST_UID); // 已读

22. imap_clearflag_full()

清除标记


十、删除 / 恢复邮件

23. imap_delete()

标记删除

  1. imap_delete($mbox, $uid, ST_UID);

24. imap_expunge()

永久删除已标记邮件

  1. imap_expunge($mbox);

十一、错误处理

25. imap_last_error()

最后一条错误

  1. imap_last_error();

26. imap_errors()

所有错误

27. imap_alerts()

系统警告


🔥 最常用的 10 个(记住这些就够了)

  1. imap_open
  2. imap_close
  3. imap_search
  4. imap_check
  5. imap_headerinfo
  6. imap_body
  7. imap_fetchstructure
  8. imap_fetchbody
  9. imap_utf8
  10. imap_msgno(用 UID 必用)

我可以给你:

  • 完整接收邮件类(支持:标题、正文、附件、HTML、已读标记)
  • 最稳定的 UID 模式收信代码
  • 中文不乱码、不报错、可直接上线使用