gpt4 book ai didi

python - 如果 poplib 和电子邮件模块已阅读消息,则不会重新循环该消息

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:25 25 4
gpt4 key购买 nike

我目前正在尝试编写一个脚本来从我的 Gmail 帐户获取消息,但我注意到一个问题。如果 poplib 循环遍历我的收件箱中的一条消息,它将永远不会再循环遍历它。这是我的代码

import poplib, string, email

user = "jj@gmail.com"
password = "password"

message = ""
mail = poplib.POP3_SSL('pop.gmail.com')
mail.user(user)
mail.pass_(password)

iMessageCount = len(mail.list()[1])
message = ""
msg = mail.retr(iMessageCount)
str = string.join(msg[1], "\n")
frmMail = email.message_from_string(str)

for part in frmMail.walk():
if part.get_content_type() == "text/plain":
print part.get_payload()

mail.quit()

每次运行此脚本时,它都会转到下一封最新电子邮件,并跳过上次运行时显示的电子邮件。

最佳答案

使用 mail.retr() 检索邮件会为该邮件设置 seen 标志,因此该邮件将不再通过 mail.list() 可见 调用 mail.quit() 后。

如果您不调用mail.quit(),您的消息将保持不可见。

顺便说一句,gmail 支持 IMAP,通常比 POP3 更好。

关于python - 如果 poplib 和电子邮件模块已阅读消息,则不会重新循环该消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923310/

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