1

我目前正在尝试编写一个从我的 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()

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

4

1 回答 1

1

检索消息并mail.retr()设置该消息的已看到标志,因此在调用mail.list()之后将不再可见。mail.quit()

如果你不打电话,mail.quit()你的消息将保持不可见。

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

于 2012-06-07T00:05:33.137 回答