Tôi cố gắng xóa thư khỏi thư mục hộp thư đến và tất cả đều ổn, nhưng khi tôi chuyển sang thư mục Tất cả thư, việc xóa không hoạt động. expunge()
phương thức trả về ('OK', [None])
và thông điệp đã không loại bỏ:Sự cố khi xóa email trong gmail bằng imaplib
>>>import imaplib
>>>server = imaplib.IMAP4_SSL('imap.gmail.com','993')
>>>server.login('[email protected]','Password')
>>>server.select('inbox')
>>>for i in server.search(None,'all')[1][0].split():
... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1]
...
# that how i know what UID hame my message? I select by subject
#....
#28
#Subject: 1 Question Has 1 Answer - Stack Overflow
#
#
#29
#Subject: 2222222222
#...
>>>server.store(29,'+FLAGS','\\Deleted')
#('OK', ['29 (FLAGS (\\Seen \\Deleted))'])
>>>server.expunge()
#('OK', ['29'])
>>> server.select('[Gmail]/All Mail')
('OK', ['47'])
>>> for i in server.search(None,'all')[1][0].split():
... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1]
...
#....
#
#46
#Subject: 2222222222
#
#
#47
#Subject: 3333333333333333
#
#....
>>> server.store(47,'+FLAGS','\\Deleted')
('OK', ['47 (FLAGS (\\Seen \\Deleted))'])
>>> server.expunge()
('OK', [None])
Tôi đã thử cách tiếp cận của bạn nhưng khi tôi xóa một tin nhắn, tin nhắn sẽ có nhãn INBOX trong khi nếu chúng tôi xóa khỏi chính gmail thì thông báo sẽ không có bất kỳ nhãn nào. –
Tôi biết đây là một chủ đề thực sự cũ, nhưng để giúp bất cứ ai khác có vấn đề của Rahul ở trên, bạn chỉ cần loại bỏ "nhãn hộp thư đến" trước, trước khi bạn thêm nhãn thùng rác. tức là 'imap.store (num, '-X-GM-LABELS', '\\ Hộp thư đến')' – Shogan