我目前正在尝试编写一个从我的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()
每次运行此脚本时,它都会转到下一个最新的电子邮件,只是跳过上次运行时显示的电子邮件。
答案 0 :(得分:1)
使用mail.retr()
检索邮件会为该邮件设置看到的标记,因此在调用mail.list()
后,{} {}}将无法再显示该邮件。
如果您不致电mail.quit()
,您的邮件将无法显示。