使用Python从Gmail下载特定的电子邮件

有人可以帮我自定义现有的代码示例吗?

我可以从下面的文章中看到如何连接到Gmail和下载内容,但是我无法弄清楚如何搜索特定的电子邮件,只能下载时间戳和正文?

文章:How can I download all emails with attachments from Gmail?

我特意在最近5天从“Alerts@foobank.com”中获取电子邮件,并下载电子邮件的发送时间和正文.然后我会解析这个,以确定我需要使用哪些电子邮件.

我自学,并且很难定制上面的脚本来做到这一点.

任何帮助深表感谢.谢谢.

JD

最佳答案
我建议使用IMAPClient作为IMAP的更深奥的方面的论文.

以下片段将根据您的条件拉取消息,将消息字符串解析为email.message.Message实例并打印“Date”和“From”头.

from datetime import datetime, timedelta
import email
from imapclient import IMAPClient

HOST = 'imap.gmail.com'
USERNAME = 'username'
PASSWORD = 'password'
ssl = True

today = datetime.today()
cutoff = today - timedelta(days=5)

## Connect, login and select the INBOX
server = IMAPClient(HOST, use_uid=True, ssl=ssl)
server.login(USERNAME, PASSWORD)
select_info = server.select_folder('INBOX')

## Search for relevant messages
## see http://tools.ietf.org/html/rfc3501#section-6.4.5
messages = server.search(
    ['FROM "Alerts@foobank.com"', 'SINCE %s' % cutoff.strftime('%d-%b-%Y')])
response = server.fetch(messages, ['RFC822'])

for msgid, data in response.iteritems():
    msg_string = data['RFC822']
    msg = email.message_from_string(msg_string)
    print 'ID %d: From: %s Date: %s' % (msgid, msg['From'], msg['date'])

转载注明原文:使用Python从Gmail下载特定的电子邮件 - 代码日志