【发布时间】:2015-03-24 18:02:31
【问题描述】:
我是 python 新手,想获取所有带有 gmail 帐户正文的邮件,但我只能获取最旧的电子邮件。 我的代码如下,提前感谢您的帮助。
#!/usr/bin/env python
import getpass
import imaplib
import email
from email.parser import HeaderParser
M = imaplib.IMAP4_SSL("imap.gmail.com", 993)
add = raw_input("Email address: ")
password = getpass.getpass()
M.login(add, password)
M.select()
resp, data = M.FETCH(1, '(RFC822)')
mail = email.message_from_string(data[0][1])
for part in mail.walk():
# multipart are just containers, so we skip them
if part.get_content_maintype() == 'multipart':
continue
# we are interested only in the simple text messages
if part.get_content_subtype() != 'plain':
continue
payload = part.get_payload()
print payload
【问题讨论】:
-
我们在谈论多少条消息?这可以改变实施。您正在使用 m.fetch(1, ...) 来获取第一条消息正文。更改第一个参数以适应。您可以使用循环并获取帐户中的所有消息。注意:imaplib 级别很低。如果您不了解 IMAP,则很难使用。
标签: python-2.7 gmail imap