簡體   English   中英

如何使用python迭代收件箱中的每封電子郵件?

[英]How do you iterate through each email in your inbox using python?

我是編程新手,我正在嘗試構建一個autorespoder來將msg發送到特定的電子郵件地址。

使用if語句,我可以檢查收件箱中是否有來自某個地址的電子郵件,我可以發送電子郵件,但是如果該地址有多封電子郵件,我該如何制作for循環來為每個地址發送電子郵件來自該特定地址的電子郵件

我試着把它用作循環:

for M.search(None, 'From', address) in M.select(): 

但我得到錯誤:“無法分配給該函數調用”

正如您聲稱自己是編程新手,我最好的建議是:始終閱讀文檔。

也許你應該先閱讀一個教程


文檔提供了一個示例:

import getpass, imaplib

M = imaplib.IMAP4()
M.login(getpass.getuser(), getpass.getpass())
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
    typ, data = M.fetch(num, '(RFC822)')
    print 'Message %s\n%s\n' % (num, data[0][3])
M.close()
M.logout()

你有沒有嘗試過?


關於你的代碼:

定義for循環時 ,它應該是:

for x in some_data_set:

x是一個變量,它一次保存一個項的值(並且只能在for循環體中訪問(有一個例外,但這在這里並不重要))。

你在做什么與imaplib模塊無關,只是錯誤的語法。

順便說一句。 .select()選擇郵箱,僅返回郵箱中的郵件數 即只是一個標量值,沒有可以迭代的序列:

IMAP4.select([mailbox [,readonly]])
選擇一個郵箱。 返回的數據是郵箱中的郵件計數(EXISTS響應)。 默認郵箱是“INBOX”。 如果設置了只讀標志,則不允許對郵箱進行修改。

(這確實與imaplib模塊有關;))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM