【发布时间】:2011-09-01 15:55:44
【问题描述】:
我在我的项目中使用 imaplib,因为我需要访问 gmails 帐户。 事实:使用 gmail 的标签,每条消息可能位于任意数量的文件夹/框/标签上。
问题是我想从每条消息中获取每个标签。
我想到的第一个解决方案是使用“所有邮件”文件夹来获取所有邮件,然后对于每封邮件,检查该邮件是否在每个可用文件夹中。
但是,我发现这个解决方案很繁重,我想知道是否有更好的方法来做到这一点。
谢谢!
【问题讨论】:
我在我的项目中使用 imaplib,因为我需要访问 gmails 帐户。 事实:使用 gmail 的标签,每条消息可能位于任意数量的文件夹/框/标签上。
问题是我想从每条消息中获取每个标签。
我想到的第一个解决方案是使用“所有邮件”文件夹来获取所有邮件,然后对于每封邮件,检查该邮件是否在每个可用文件夹中。
但是,我发现这个解决方案很繁重,我想知道是否有更好的方法来做到这一点。
谢谢!
【问题讨论】:
在 imap 中你没有标签,gmail 在 imap 上“模拟”它们,你可以从 imap 中挑选消息的原始来源,检查它是否有带有标签的自定义标题
【讨论】:
要在 gmail 中获取给定消息的所有标签,您可以执行以下操作
t, d = imapconn.uid('FETCH', uid, '(X-GM-LABELS)')
or
t, d = imapconn.fetch(uid, '(X-GM-LABELS)')
顺便说一句:您可以在http://code.google.com/apis/gmail/imap/找到更多关于 gmail imap 扩展的信息
【讨论】: