【问题标题】:IMAP: Return several headers in one commandIMAP:在一个命令中返回多个标头
【发布时间】:2019-02-23 10:57:02
【问题描述】:

我是 IMAP 命令的新手,但我知道在 IMAP 中您可以使用此命令来获取消息的标题:

fetch Message_Id (RFC822.HEADER)

fetch Message_Id:* (body[header.fields (from to subject date)])

其中 Message_Id 是消息 ID,例如:1、2、3 ...

所以我需要一个命令,它只用一个命令获取所选文件夹中所有邮件的标题,我会收到一个标题列表,如下所示:

fetch * (RFC822.HEADER)

fetch *:* (body[header.fields (from to subject date)])

这可能吗?有这样的命令吗?

【问题讨论】:

  • 当然可以。你试过什么?您的建议之一将有效...
  • 我都试过了,但我并没有像 1:* 这样的第一条消息开始得到 Max 解释的整个列表,所以这就是问题所在..

标签: email imap


【解决方案1】:

: 用于范围。所以1:3 表示从 1 到 3 的消息。

* 不是指“每条消息”,而是指“最后一条消息”,不管它是什么。

所以,您想要的范围只是1:*,从消息 1 到最后一条消息。

【讨论】:

  • 谢谢,这确实有效,但是当我使用: fetch 1 (RFC822.HEADER) 时,消息仍然是 Unseen (如果它是不可见的)但现在当我使用时: fetch 1:* (UID FLAGS body[header.fields (from to subject date)]) 它给了我文件夹中的所有标题,这很好,但是所有的消息都被看到了(就像添加了看到的标志一样),有没有办法避免这种情况?
  • Fetching BODY[anything] 默认设置 \Seen 标志。使用 BODY.PEEK[...] 变体,而不是。这都在 RFC3501 中。
  • fetch 1:* (UID FLAGS body.peek[header.fields (from to subject date)])
猜你喜欢
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 2015-03-28
  • 2011-06-28
  • 1970-01-01
相关资源
最近更新 更多