gpt4 book ai didi

python - 通过python从gmail获取电子邮件

转载 作者:行者123 更新时间:2023-11-28 18:49:32 24 4
gpt4 key购买 nike

我正在使用以下代码从 gmail 下载我的所有电子邮件,但不幸的是,返回的电子邮件总数与帐户中的电子邮件总数不匹配。特别是,我能够收到前 43 条消息,但我发现收件箱中还有 20 多条消息被遗漏了。也许这是对可以撤回的数量的某种限制(?)。在此先感谢您提供的任何帮助!

import imaplib, email, base64

def fetch_messages(username, password):
messages = []
conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)
conn.login(username, password)
conn.select()
typ, data = conn.uid('search', None, 'ALL')

for num in data[0].split():
typ, msg_data = conn.uid('fetch', num, '(RFC822)')
for response_part in msg_data:
if isinstance(response_part, tuple):
messages.append(email.message_from_string(response_part[1]))
typ, response = conn.store(num, '+FLAGS', r'(\Seen)')
return messages

最佳答案

我使用以下方法获取所有电子邮件。

resp,data = mail.uid('FETCH', '1:*' , '(RFC822)')

并获取我使用的所有 id:

result, data = mail.uid('search', None, "ALL")
print data[0].split()

给出:

['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', ... etc ]

编辑

在我的例子中,以下返回 202 个日期,这超出了 OP 正在寻找的日期并且是正确的数字。

resp,data = mail.uid('FETCH', '1:*' , '(RFC822)')
messages = [data[i][1].strip() for i in xrange(0, len(data), 2)]
for msg in messages:
msg_str = email.message_from_string(msg)
print msg_str.get('Date')

关于python - 通过python从gmail获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15075786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com