Можете ли вы удалить электронные письма с помощью imaplib? Если да, то как?
Использование python imaplib для "удаления" электронной почты из Gmail?
Ответ 1
Используйте store метод (объекта IMAP4
, представляющий ваше соединение), чтобы установить флаг r'\Deleted'
на номер сообщения вы хотите удалить, как показывает пример в документации; затем expunge, чтобы фактически выполнить все удаленные таким образом помеченные.
Реализация IMAP в Gmail имеет по-разному разную семантику, но если вы хотите, вы можете настроить ее, чтобы вести себя гораздо больше, как традиционный IMAP (в том случае, когда вышеприведенная последовательность работает) - в основном вам нужно включить "Advanced IMAP Controls" , а затем следовать инструкциям в URL-адресе, который я дал, чтобы получить именно семантику IMAP, которую вы хотите (физически удалять, а не архивировать "удаленные" письма, ожидания или нет для expunge
и т.д.).
Ответ 2
Удаление электронной почты через IMAP выполняется в два этапа:
- отметьте один или несколько элементов для удаления:
imap.store(msg_no, '+FLAGS', '\\Deleted')
- удалить почтовый ящик:
imap.expunge()
(imap
- ваш объект IMAP4
)
Ответ 3
imap.uid('STORE', list_of_msgno , '+FLAGS', '(\Deleted)')
imap.expunge()
i.e
imap.uid('STORE', '2, 4, 9, 12' , '+FLAGS', '(\Deleted)')
Здесь (2, 4, 9, 12)
являются uid
сообщений, которые будут удалены.