2016-01-19 4 views
1

Использование python и imaplib, как я могу удалить последнее отправленное письмо? У меня есть это:Как удалить последнюю почту, отправленную в python?

mail = imaplib.IMAP4_SSL('imap-mail.outlook.com') 
mail.login('[email protected]', 'MYPASS') 
mail.select('Sent') 
mail.search(None, "ALL") # Returns ('OK', ['1 2 ... N']) 
# doubt 

Спасибо заранее!

ответ

0

Я нашел решение, которое сработало для меня. После получения почтового ящика мне нужно было найти сообщение с функцией fetch(), а затем удалить сообщение электронной почты с помощью функции expunge(). От imaplib documentation:

IMAP4.expunge()

Постоянно удалить удаленные элементы из выбранного почтового ящика. Генерирует ответ EXPUNGE для каждого удаленного сообщения. Возвращенные данные содержат список EXPUNGE номеров сообщений для заказа полученных.

Мой код:

mail = imaplib.IMAP4_SSL('imap-mail.outlook.com') 
mail.login('[email protected]', 'MYPASS') 
mail.select('Sent') 

typ, data = mail.search(None, 'ALL') 
control = 0 
tam = len(data[0].split()) 
while control < tam: 
    typ, data = mail.fetch(tam - control, '(RFC822)') 
    if str(data).find(msg['Subject']) and str(data).find(msg['To']) != -1: 
     print "Msg found! ", control + 1, "most recently message!" 
     mail.store(str(tam - control), '+FLAGS', '\\Deleted') 
     mail.expunge() 
     break 
    control = control + 1 

mail.close() 
mail.logout() 
1

Чтобы открыть соответствующую папку с разрешениями на чтение и запись, необходимо использовать метод select. Если вы не хотите отмечать свои сообщения, как видно, вам нужно использовать метод проверки.

Команда сортировки доступна, но она не гарантируется поддержкой сервера IMAP. Например, Gmail не поддерживает команду SORT.

Чтобы попробовать команду сортировки, вы должны заменить M.search(None, 'ALL') с M.sort(search_critera, 'UTF-8', 'ALL')

Тогда критерии_поиска бы строку типа:

search_criteria = 'DATE' #Ascending, most recent email last 
search_criteria = 'REVERSE DATE' #Descending, most recent email first 
search_criteria = '[REVERSE] sort-key' #format for sorting 

По RFC5256 это действует вроде-ключа:

"ARRIVAL"/"CC"/"DATE"/"FROM"/"SIZE"/"SUBJECT"/"TO" 
+0

Все, что мне нужно, чтобы получить доступ к почтовому ящику посланного, а затем удалить совсем недавно сообщение. – eightShirt

+0

Хорошо, пожалуйста, см. Мой комментарий – hd1

+0

Да, спасибо @ hd1. Теперь я знаю, чтобы получить доступ к отправленному почтовому ящику. Но как удалить последнее сообщение? – eightShirt

 Смежные вопросы

  • Нет связанных вопросов^_^