Уведомления

Группа в Telegram: @pythonsu

#1 Март 12, 2018 16:52:31

chtozor
Зарегистрирован: 2018-03-12
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Очистка корзины в почте

Добрый день! У меня такой вопрос. Подключаюсь к почте mail.ru через imap, дальше нужные мне письма удаляю строкой:

 mail.store(latest_email_id, '+FLAGS', '\\Deleted')
Вот только они переносятся в корзину, а не полностью удаляются. Вопрос в том, как удалить их из корзины?

Офлайн

#2 Март 12, 2018 19:34:14

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Очистка корзины в почте

просто в настройках mail укажите удалять при выходе Ж)

Офлайн

#3 Март 13, 2018 09:14:24

chtozor
Зарегистрирован: 2018-03-12
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Очистка корзины в почте

papuas
просто в настройках mail укажите удалять при выходе Ж)
А можно немного подробнее, как это сделать?

Офлайн

#4 Март 14, 2018 00:29:52

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Очистка корзины в почте

Извиняйте, они недавно эту лавочку прикрыли.
Тогда так
собственно, ничего нового.

 def empty_folder(m, folder, do_expunge=True):
    print("- Empty '{0}' & Expunge all mail...".format(folder))
    m.select(folder)  # select all trash
    m.store("1:*", '+FLAGS', '\\Deleted')  # Flag all Trash as Deleted
    if do_expunge:
        m.expunge()  # not need if auto-expunge enabled
    else:
        print("Expunge was skipped.") 
    return
empty_folder(mail,  'корзина')

Отредактировано papuas (Март 14, 2018 00:35:55)

Офлайн

#5 Март 14, 2018 07:54:47

chtozor
Зарегистрирован: 2018-03-12
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Очистка корзины в почте

papuas
Извиняйте, они недавно эту лавочку прикрыли. Тогда так собственно, ничего нового.
да, я так пробовал. Единственное, если вставляю в строку
 m.select(folder)  # select all trash
Вместо folder - ‘trash’, то вылетает ошибка
 Traceback (most recent call last):
  File "C:/Users/admin/PycharmProjects/vrazrez/очиста корзины.py", line 25, in <module>
    mail.store("1:*", '+FLAGS', '\\Deleted')  # Flag all Trash as Deleted
  File "C:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\imaplib.py", line 835, in store
    typ, dat = self._simple_command('STORE', message_set, command, flags)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\imaplib.py", line 1191, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "C:\Users\admin\AppData\Local\Programs\Python\Python36-32\lib\imaplib.py", line 939, in _command
    ', '.join(Commands[name])))
imaplib.error: command STORE illegal in state AUTH, only allowed in states SELECTED

Офлайн

#6 Март 14, 2018 12:25:39

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

Очистка корзины в почте

видимо вы не в том месте строку вставляете

Офлайн

#7 Март 15, 2018 07:30:40

chtozor
Зарегистрирован: 2018-03-12
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Очистка корзины в почте

papuas
видимо вы не в том месте строку вставляете
Ну вот мой код для ‘inbox’, который помечает письма в папке инбокс как удаленные и перемещает их в корзину.
 # -*- coding: utf-8 -*-
import imaplib
import time
f = open(r'C:\Users\admin\Desktop\удаление писем\myfile.txt')
line = f.readlines()
for i in range(30):
 mail = imaplib.IMAP4_SSL('imap.mail.ru')
 mail_info = line[i].split(':')
 mail_login = mail_info[0]
 mail_pass = mail_info[1]
 print(mail_login)
 print(mail_pass)
 mail.login(mail_login, mail_pass)
 mail.list()
# Выводит список папок в почтовом ящике.
 mail.select("inbox")  # Подключаемся к папке "входящие".
 result, data = mail.search(None, "ALL")
 ids= data[0] # Получаем сроку номеров писем
 id_list = ids.split() # Разделяем ID писем
 latest_email_id = id_list[-1] # Берем последний ID
 latest_email_id2 = id_list[-2] # Берем последний ID-1
 latest_email_id3 = id_list[-3] # Берем последний ID-2
 latest_email_id4 = id_list[-4] # Берем последний ID-3
 latest_email_id5 = id_list[-5] # Берем последний ID-4
 latest_email_id6 = id_list[-6] # Берем последний ID-5
 mail.store(latest_email_id, '+FLAGS', '\\Deleted')
 mail.store(latest_email_id2, '+FLAGS', '\\Deleted')
 mail.store(latest_email_id3, '+FLAGS', '\\Deleted')
 mail.store(latest_email_id4, '+FLAGS', '\\Deleted')
 mail.store(latest_email_id5, '+FLAGS', '\\Deleted')
 mail.store(latest_email_id6, '+FLAGS', '\\Deleted')
 mail.expunge()
 mail.logout()
 print('задержка 10 сек')
 time.sleep(10)
Подскажите пожалуйста, что мне тут изменить, чтобы удалялись письма из корзины?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version