【问题标题】:How can I uniquely identify an IMAP message after copying it?复制后如何唯一标识 IMAP 消息?
【发布时间】:2011-08-04 04:37:31
【问题描述】:

我想使用 python 的 imapclient 库将 IMAP 消息从收件箱移动到收件箱/存档,我基本上是这样做的:

def archive_message(imap, message_id):
    imap.copy([message_id], getOptions().imap_archive_folder)
    imap.delete_messages([message_id])

但是,这失去了我对消息的引用。我想要做的是存储消息的标识符,以便我以后可以使用类似这样的方式查找消息:

def retrieve_message(imap, MYSTICAL_STORED_ID):
    imap.select_folder(getOptions().imap_archive_folder)
    return imap.fetch([MYSTICAL_STORED_ID], parts=["RFC822"])

我应该/我可以使用什么 ID,我将如何进行查找?

【问题讨论】:

  • 在大多数情况下,服务器将支持 UIDPLUS 扩展,因此远程文件夹中副本的新 UID 是您调用 imap.copy 的返回值的一部分。

标签: python imap imaplib


【解决方案1】:

Message-Id 标头中的值应该是每封电子邮件唯一的。

【讨论】:

  • 那么,假设我已经选择了一个文件夹,这足以识别要检索的消息吗?
  • 可能需要扫描文件夹以查找相应的邮件并获取其索引;我其实不太了解 IMAP。
  • 问题是您可以在一个文件夹中拥有单个邮件的多个副本。 (看到那个imap.copy了吗?你不必跟着它imap.delete_messages...)
  • 当然,但这只是同一消息的多个实例,Message-Id 可以用来清除它们。
猜你喜欢
  • 2012-07-11
  • 2012-05-28
  • 2013-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
相关资源
最近更新 更多