Рубрики
Без рубрики

Почтовый ящик Decluttering с помощью Python

У меня было так много непрочитанных электронных писем в моем почтовом ящике, потому что они были рекламными контентом, или я был просто слишком … Теги с Python, Email.

У меня было так много непрочитанных электронных писем в моем почтовом ящике, потому что они были рекламными контентом, или мне было просто лень читать, когда пришли. Теперь представьте открытие вашего почтового ящика и просмотра более тысячи электронных писем – крики в 1917 году !! Как я могу остановиться как можно быстрее?

Теперь я знаю Gmail имеет функцию удаления Но я верю, что мы должны «автоматизировать скучные вещи с Python», и вы можете узнать что-то новое или нет.

В этой статье я покажу вам, как настроить скрипт для отправки непрочитанных/нежелательных сообщений из вашего почтового ящика для мусора с использованием iMaplib и как удалить непрочитанные/нежелательные сообщения, используя IMAPCliент навсегда.

Давайте прыгнем прямо в это!

Предварительные условия

  • Питон
  • Аккаунт Gmail.
  • Imapclient [необязательно]

Настройка вашей учетной записи Gmail

IMAP означает протокол доступа к Интернету. Согласно Wikipedia, это «протокол в Интернете стандартный протокол, используемый клиентами электронной почты для получения сообщений электронной почты с почтового сервера над соединением TCP/IP».

Чтобы начать работу, нам нужно создать учетную запись Gmail для успеха процесса. Я сделал следующие изменения в моей учетной записи Gmail, который включил IMAP и включил менее защищенные приложения.

  1. Во-первых, открыть Gmail, нажмите на Настройки ⚙️ Значок и нажмите Просмотреть все настройки, чтобы включить IMAP.
  2. На следующей странице нажмите на Пересылка и поп/IMAP вкладка.
  3. В IMAP Access Раздел, выберите Включить IMAP Отказ Затем нажмите Сохранить изменения . Если вам нужна дополнительная помощь, пожалуйста, посетите это Страница справки Gmail Отказ
  4. Чтобы включить менее безопасные приложения, перейдите к вашим приборной панели Google, нажав на аватар аккаунта в верхнем правом углу экрана, а затем нажмите Мой аккаунт или перейдите к myaccount.google.com.
  5. Затем выберите Вход и безопасность Прокрутите вниз, пока не увидите, что опция Разрешите менее безопасные приложения и включите доступ.

Если вы все еще не можете войти в систему после выхода выше, пожалуйста, посетите здесь для официального Google Помогите поддержать Отказ

Как мучить ваши электронные письма с помощью iMaplib

Библиотека IMAP – это встроенная библиотека Python, используемая для доступа к и управления электронным письмам по IMAP. Код ниже входит в нужный адрес электронной почты. После входа в систему мы выбираем нужный почтовый ящик, чтобы увидеть список всех доступных почтовых ящиков, чтобы выбрать из использования Печать (mail.list ()) Отказ

Стартовый код для imaplib

Критерий электронных писем, которые будут отправлены в мусорное ведро в этом разделе:

  • Непрочитанные электронные письма.
  • Письма на основе конкретной темы.
  • Письма на основе конкретного отправителя.
import imaplib
import getpass
username =  input("Enter the email address: ")
password = getpass.getpass("Enter password: ")
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(username, password)
mail.select("INBOX")

Разбивающая все непрочитанные электронные письма

Подведенный ниже код отправляет все непрочитанные электронные письма в мусорное ведро. Вы никогда не можете сказать, если вам нужно по электронной почте, поэтому у вас есть тридцать (30) дней до того, как Gmail удаляет его из мусора. Во-первых, мы ищем через электронные письма, устанавливающие критерии для «невидимого» (который является флагом для непрочитанных сообщений). Результат переменного является выходной код команды, в то время как сообщения являются списком, который содержит объект байта типа. Наконец, мы верим через электронные письма в списке и поместите их в папку для мусора.

results, messages = mail.search(None, 'UNSEEN')
messages = messages[0].split()
for x in messages:
  result, message = mail.store(x, '+X-GM-LABELS', '\\Trash')
mail.close()
mail.logout()

Разбивающая все электронные письма с конкретным предметом

Здесь мы ищем выбранный почтовый ящик, используя наши желаемые критерии. Вы должны заменить «Название» с желаемой темой в коде ниже:

results, messages = mail.search(None, '(SUBJECT "Title")')
messages = messages[0].split()
for x in messages:
  result, message = mail.store(x, '+X-GM-LABELS', '\\Trash')
mail.close()
mail.logout()

Разбивающая все электронные письма от конкретного отправителя

Здесь мы ищем почтовый ящик, используя наши желаемые критерии. Вы должны заменить "abc@xyz.com" С помощью вашего предпочтительного адреса электронной почты в коде ниже:

results, messages = mail.search(None, '(FROM "abc@xyz.com")')
messages = messages[0].split()
for x in messages:
  result, message = mail.store(x, '+X-GM-LABELS', '\\Trash')
mail.close()
mail.logout()

Здесь я кратко расскажу о используемых методах.

  • Поиск () это метод, используемый для просмотра выбранного почтового ящика, требуется два аргумента; Чарс и критерий. ЧАСТЬ может быть установлена на нет.
  • магазин () это метод, используемый для изменения флага или метки сообщения; Требуется три аргумента; Сообщение, команда и флаг.
  • близко () это метод, используемый для закрытия выбранного почтового ящика.
  • выйти () это метод, используемый для закрытия подключения к серверу.
  • '+ X-GM-MABLELS' Этикетка рассматривается как папка, чтобы изменения могли быть сделаны в сообщениях, использующих команды IMAP.

Как навсегда удалить ваши электронные письма с помощью imapClient

При исследовании этой статьи я наткнулся на библиотеку ImapClient. От его Официальная документация Я обнаружил, что: «Хотя imapClient на самом деле использует модуль imaplib из стандартной библиотеки Python под капотом, он предоставляет другой API».

Использование imapclient для удаления писем не отправит электронные письма в папку для мусора; Они будут постоянно удалены. Вы должны убедиться, что вы хотите навсегда удалить ваши электронные письма перед использованием любых фрагментов кода здесь.

Стартовый код для imapclient

Чтобы использовать IMAPClient, вы должны установить пакет, используя команду ниже:

pip install imapclient

Далее мы импортируем библиотеку и установим сервер нашего адреса электронной почты.

from imapclient import IMAPClient
import getpass
server = IMAPClient('imap.gmail.com', use_uid=True)
username =  input("Enter the email address: ")
password = getpass.getpass("Enter password: ")
server.login(username, password)
select_info = server.select_folder("INBOX")

Критерий электронных писем, которые будут отправлены в мусорное ведро в этом разделе:

  • Непрочитанные электронные письма.
  • Письма на основе конкретной темы.
  • Письма на основе конкретного отправителя.

Постоянно удалять все непрочитанные электронные письма

Код ниже постоянно удаляет все непрочитанные электронные письма.

messages = server.search("UNSEEN")
for x in messages:
  server.delete_messages(x)
server.logout()

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

Мы ищем выбранный почтовый ящик, используя наши желаемые критерии. Вы должны заменить «Название» с желаемой темой в коде ниже:

messages = server.search(['SUBJECT', 'Title'])
for x in messages:
  server.delete_messages(x)
server.logout()

Постоянно удалять все электронные письма от конкретного отправителя

Мы ищем почтовый ящик, используя наши желаемые критерии. Вы должны заменить "abc@xyz.com" С помощью вашего предпочтительного адреса электронной почты в коде ниже:

messages = server.search(['FROM', 'abc@xyz.com'])
for x in messages:
  server.delete_messages(x)
server.logout()

Примечание

  • Выход из сервера важен
  • Чтобы получить доступ к всем электронным письмам при использовании iMaplib, используйте mail.select ('"[Gmail]/All Mail"').
  • Убедитесь, что вы выключите менее безопасные приложения.
  • Многие электронные письма пострадали в процессе создания этого руководства 😂.

Заключение

Мне было весело написать это, и я надеюсь, что вы тоже сделали, читая это. Я также столкнулся с ошибками во время записи скрипта. Наиболее повторяющийся человек не в состоянии войти даже после выполнения инструкций на странице справки Google. Эта проблема была встречена, потому что у меня есть более одного аккаунта Gmail, и я не использовал свой адрес электронной почты по умолчанию. В случае, если вы столкнулись с тем же, решение описано ниже:

  • Инструкция сказала: «Если советы выше не помогали, посетите https://www.google.com/accounts/displayunlockcaptcha и следуйте инструкциям на странице. ” Это открывается на новой вкладке.
  • Ссылка на новой вкладке была ” https://accounts.google.com/b/0/displayunlockcaptcha «Где цифра 0 предназначена для учетной записи по умолчанию.
  • Проверьте свои учетные записи в порядке, в котором они перечислены и изменяют цифру соответственно (например., «1» – это следующее письмо и так далее).

Вы можете найти полный скрипт на Github Отказ

Спасибо за чтение этого учебника!

использованная литература

Оригинал: “https://dev.to/yomaokobiah/decluttering-mailbox-using-python-44l8”