IMAP UID FETCH BODY.PEEK[] 命令响应

Posted

技术标签:

【中文标题】IMAP UID FETCH BODY.PEEK[] 命令响应【英文标题】:IMAP UID FETCH BODY.PEEK[] command response 【发布时间】:2017-10-30 18:32:48 【问题描述】:

我现在正在开发一个简单的 IMAP 客户端。要接收消息正文,我使用命令“UID FETCH message-UID BODY.PEEK[]”。问题是我能否确定该命令的服务器响应之一将是“* message-sequence-number FETCH (UID message-UID BODY[] 消息正文)“?还是我应该准备好接收任何可能的 FETCH 响应(例如使用消息信封)?我知道我可以收到“* message-sequence-number FETCH (FLAGS flags)”形式的消息标志更新,我现在忽略它。

当然,我已经阅读了标准rfc3501,但没有找到答案。

【问题讨论】:

【参考方案1】:

您无法确定该消息是否存在。但如果它确实存在,那么服务器必须向您发送一个包含 UID 和 BODY[] 的 FETCH,通常但不一定按此顺序。在实践中,它可能还包括 FLAGS,但仅此而已。

【讨论】:

你能告诉我描述它的标准部分吗? 第 54 页的下半部分。不过,如果你问我的话,它有点简洁。 RFC 没有说“不能返回其他东西”,但是与一千个脆弱的客户端的兼容性要求 ;)

以上是关于IMAP UID FETCH BODY.PEEK[] 命令响应的主要内容,如果未能解决你的问题,请参考以下文章

IMAP 命令 UID FETCH:参数太长

imap_setflag_full 似乎啥都不做?

在多个进程中使用imaplib.IMAP4_SSL

IMAP:搜索 UID 大于 X 的邮件(或者通常,在我上次搜索之后)

IMAP协议流程

使用 Javascript fetch 发送的 GraphQL 引用参数