首页/网络/协议速查/IMAP FETCH 语法

IMAP FETCH 语法

FETCH 是 IMAP 的万能取数命令:按消息号或范围取 FLAGS/UID/信封/任意正文段;BODY[] 会把信标为已读,预览要用 BODY.PEEK。

协议速查网络更新于 2026-10-12

常用 FETCH 形态

常用 FETCH 形态
a1 FETCH 1:* (FLAGS UID)
a2 FETCH 100 (BODY.PEEK[HEADER.FIELDS (SUBJECT FROM DATE)])
a3 FETCH 100:102 BODY[TEXT]<0.2048>
a4 UID FETCH 1234 (RFC822.SIZE INTERNALDATE)
a5 FETCH 5 (ENVELOPE)
BODY[]取整封(含头与正文),并把 \Seen 置位
BODY.PEEK[]同上但不置已读——预览首选
<offset.count>部分取,如 <0.2048> 取前 2KB 正文
UID FETCH用持久 UID 而非会话序号的取数方式
消息号(1,2,3...)随删除/新到重排;跨会话引用同一封信必须用 UID。

易错点

  • 写邮件预览服务误用 BODY[]:一预览就把用户邮件全标成已读,必须用 BODY.PEEK[]

数据来源与参考

  • RFC 3501 §6.4.5(FETCH)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌