imaplib/gmail 如何在不标记已读的情况下下载完整消息(所有部分)[重复]

2024-04-20

我无意中将收件箱中的所有邮件标记为已使用以下 python 语句读取:

status, data = conn.uid('fetch', fetch_uids, '(RFC822)')

但我能够通过以下一组语句浏览该消息的所有部分:

email_message = email.message_from_string(data[0][1])
for part in email_message.walk():
  print '\n'
  print 'Content-Type:',part.get_content_type()
  print 'Main Content:',part.get_content_maintype()
  print 'Sub Content:',part.get_content_subtype()

输出:

Content-Type: multipart/mixed
Main Content: multipart
Sub Content: mixed


Content-Type: multipart/alternative
Main Content: multipart
Sub Content: alternative


Content-Type: text/plain
Main Content: text
Sub Content: plain


Content-Type: text/html
Main Content: text
Sub Content: html

我发现如果我用这个语句来代替:

status, data = conn.uid('fetch', fetch_uids, '(RFC822.HEADER BODY.PEEK[1])')

我不会将所有消息标记为已读。但是,我也不会收到消息的所有部分:

Content-Type: multipart/mixed
Main Content: multipart
Sub Content: mixed

我尝试阅读 imaplib 的手册here http://docs.python.org/release/2.6.5/library/imaplib.html,但没有提到“偷看”这个词。我的问题是,如何获取消息的所有部分而不将消息标记为已读?谢谢。


您还可以以只读模式打开邮箱。 选择(文件夹,只读=True)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

imaplib/gmail 如何在不标记已读的情况下下载完整消息(所有部分)[重复] 的相关文章

随机推荐