Ниже приведено мое понимание того, как можно удалить сообщение электронной почты с помощью imaplib. Он включает перемещение электронной почты в «корзину» перед удалением, которое, я считаю, является требованием при использовании gmail.Удаление электронной почты с помощью imaplib (gmail)
Однако, как вы можете видеть, я, кажется, падаю на этап изменения метки. Я просмотрел другие подобные темы здесь, в стеке и, несмотря на попытки множества предлагаемых решений, я не смог это решить.
>>> import imaplib
>>> server = imaplib.IMAP4_SSL(GMAIL_IMAP)
>>> server.login(EMAIL, PASSWORD)
('OK', [b'[email protected] authenticated (Success)'])
>>> server.select("INBOX")
('OK', [b'17'])
>>> status, uids = server.uid("search", None, "ALL")
>>> uids
[b'1 2 3 4 5 6 7 8 9 10 15 16 17 18 19 43 44']
uids = [uid for uid in uids[0].split()]
>>> uids
[b'1', b'2', b'3', b'4', b'5', b'6', b'7', b'8', b'9', b'10', b'15', b'16', b'17', b'18', b'19', b'43', b'44']
>>> server.store(uids[-1], "X-GM-LABELS", "\\Trash")
('OK', [None])
>>> server.store(uids[-1], "+FLAGS", "\\Deleted")
('OK', [None])
>>> server.expunge()
('OK', [None])
>>> server.close()
('OK', [b'Returned to authenticated state. (Success)'])
>>> server.logout()
('BYE', [b'LOGOUT Requested'])