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

2024-05-01 22:07:29 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我定制一个现有的代码样本吗?

我可以从下面的文章中看到如何连接到gmail并下载内容,但我不知道如何搜索特定的电子邮件,而只下载时间戳和正文?

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

我特别想从Alerts@foobank.com获取过去5天的邮件,并下载邮件的发送时间和正文。然后我会分析这个来确定我需要使用哪些电子邮件。

我自学成才,很难定制上面的脚本。

任何帮助都非常感谢。谢谢。

JD公司


Tags: 代码内容电子邮件downloadwith文章时间邮件
2条回答
import imaplib
from datetime import datetime, timedelta

obj = imaplib.IMAP4_SSL('imap.gmail.com',993)
obj.login('username','password')
obj.select()

today = datetime.today()
cutoff = today - timedelta(days=5)
dt = cutoff.strftime('%d-%b-%Y')
typ, data = obj.search(None, '(SINCE %s) (FROM "Alerts@foobank.com")'%(dt,))
print data

我建议使用IMAPClient,因为它涵盖了IMAP的许多更深奥的方面。

下面的代码片段将根据您的条件提取消息,将消息字符串解析为^{}实例,并打印DateFrom头。

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'])

相关问题 更多 >