簡體   English   中英

想要使用 gmail 中的 imaplib python 使用 python 將所有郵件從垃圾郵件文件夾移動到收件箱

[英]Want to move all mails from spam folder to inbox with imaplib python in gmail using python

我正在嘗試使用 imaplib 將 gmail 垃圾郵件文件夾中的所有郵件移動到收件箱。 但作為一個我面臨如下問題。

"apply_lbl_msg = obj.uid('COPY', mail_ids, "todays") AttributeError: 'str' object 沒有屬性 'uid' 郵件 ID: ['1', '2', '3', '4', ' 5'、'6'、'7'、'8'、'9'、'10'、'11'、'12'、'13'、'14'、'15'、'16'、'17' , '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', ' 30'、'31'、'32'、'33'、'34'、'35']"

我能夠獲取郵件 ID,但在那之后我不知道該做什么,我經歷了各種教程,但仍然面臨同樣的問題。

請幫我解決這個問題。以下是我嘗試過的代碼。如果有人知道答案的意思,請將代碼發送給我。所以我可以理解....提前謝謝...

import imaplib
obj = imaplib.IMAP4_SSL('imap.gmail.com', 993)
obj.login('my@gmail.com', 'password')
# obj.select("trials")
resp_code, mail_count = obj.select(mailbox="trials", readonly=True)

############### Retrieve Mail IDs for given Directory #############
obj, mail_ids = obj.search(None, "ALL")

print("Mail IDs : {}\n".format(mail_ids[0].decode().split()))
apply_lbl_msg = obj.uid('COPY', mail_ids, "todays")
if apply_lbl_msg[0] == 'OK':
    mov, data = obj.uid('STORE', mail_ids , '+FLAGS', '(\Deleted)')
    obj.expunge()

上面的代碼我試過了,但沒有得到所需的結果。

雖然可以直接使用imaplib ,但我建議使用更用戶友好的庫,例如imap_tools

with MailBox('imap.mail.com').login('test@mail.com', 'pwd', initial_folder='INBOX') as mailbox:

    # MOVE all messages from current folder to INBOX/folder2
    mailbox.move(mailbox.uids(), 'INBOX/folder2')

對於 Google Mail 的特定情況,我建議使用他們的Python API 例如,我編寫了一個小程序來過濾電子郵件,使用 Python 和 Google API,您可以在Github上找到代碼。

暫無
暫無

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

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