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は一般的にPOP3よりも優れているIMAPをサポートしています。

于 2012-06-07T00:05:33.137 に答える