0
我正在嘗試創建一個應用程序,需要遞歸檢查新電子郵件的電子郵件地址,然後執行其他一些操作;不過,我在獲取電子郵件正文時遇到了一些問題。我在imapclient旁邊使用了pyzmail模塊,並且使用了自動化鏜孔工具(python 3.6)。這是我的代碼:通過Pyzmail模塊遞歸獲取電子郵件正文
mail = imapclient.IMAPClient('imap.gmail.com', ssl=True)
mail.login('email', 'password')
mail.select_folder('INBOX', readonly=False)
uid = mail.gmail_search('NC')
for i in uid:
message = mail.fetch(i, ['BODY[]'], 'FLAGS')
msg = pyzmail.PyzMessage.factory(message[i][b'BODY[]'])
msg.html_part.get_payload().decode(msg.text_part.charset)
但它不工作。我基本上已經嘗試過不同形式的代碼,但無濟於事,真的沒有那麼多可以幫助我的例子。我有點蟒蛇新手。任何人都可以幫忙嗎? 謝謝,
編輯
我意識到,我犯了一個錯誤,並固定了一下代碼:
server = imapclient.IMAPClient('imap.gmail.com', ssl=True)
server.login('[email protected]', 'rabbitrun88ve')
server.select_folder('INBOX', readonly=True)
uids = server.gmail_search('NC')
for i in uids:
messages = server.fetch(i, ['BODY[]'])
msg = pyzmail.PyzMessage.factory(messages[b'BODY[]'])
我遇到的問題是與最後一行,這是我不知道如何使用迭代器創建的變量進行饋送。它拋出了這條消息:
ValueError: input must be a string a bytes, a file or a Message
我沒有看到你的「遞歸」在這裏的意思。你的問題陳述中沒有遞歸。 – Max
@Max我正在嘗試將包含NC的電子郵件的內容作爲主題。所以如果有3封電子郵件涉及這個主題,我想提取這些信息。例如:如果一封電子郵件的內容是「你好,這是一個測試」,那麼這就是我想要的。也許我用遞歸的術語來說是錯誤的。對於那個很抱歉。 –