9

Gmail の IMAP サーバーでメールをチェックする Python スクリプトがあり、サーバーに最新のメールが表示されます。ただし、メールアドレスは複数の異なるアカウントからメールを受信して​​います。このスクリプトを使用して、特定の送信者宛てのメッセージのみを表示するにはどうすればよいでしょうか? たとえば、「johndoe@gmail.com」にのみ送信されたメールが表示されます。

import imaplib

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('myemail@gmail.com', 'password123')
mail.list()
# Out: list of "folders" aka labels in gmail.
mail.select("inbox") # connect to inbox.

result, data = mail.search(None, "ALL")

ids = data[0] # data is a list.
id_list = ids.split() # ids is a space separated string
latest_email_id = id_list[-1] # get the latest

result, data = mail.fetch(latest_email_id, "(RFC822)") # fetch the email body (RFC822) for the given ID

raw_email = data[0][1] # here's the body, which is raw text of the whole email
# including headers and alternate payloads

前もって感謝します!:)

4

1 に答える 1

6

変化する:

result, data = mail.search(None, "ALL")

に:

result, data = mail.search(None, '(TO "johndoe@gmail.com")')
于 2012-10-19T04:44:34.423 に答える