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

Ezgmail и Python – управление вашими электронными письмами программно

Эй, финансы! Среди многих ежедневных задач вы можете добиться с Python, есть одна этаза, подобная сири, которая приходит вполне удобно: управление вашими электронными письмами в программном порядке. Конечно, многие электронные письма нуждаются в том, чтобы ваше человеческое понимание было обработано правильно, и эта статья не о реализации нейронной сети для тонкой настройки каждая электронная почта … Ezgmail и Python – Управление вашими электронными письмами программно Подробнее »

Автор оригинала: Clement Lelievre.

Эй, финансы! Среди многих ежедневных задач вы можете достичь с Python, есть один Сири -подобная задача, которая приходит довольно удобно: Управление вашими электронными письмами в программном порядке Отказ

Конечно, многие электронные письма нуждаются в том, чтобы ваше человеческое понимание было обработано правильно, и эта статья не о внедрении нейронной сети для тонкой настройки каждые одиночные электронные действия.

Однако речь идет о изучении ключевого актива: как реализовать код для управления простыми задачами на учетной записи Gmail, с Ezgmail Модуль, такой как:

  • получение и читать ваши непрочитанные сообщения
  • Отправка Письма, включая вложения
  • Загрузка вложения
  • Просмотр Ваши последние сообщения

Здание на этих простых задачах, вы сможете бесконечно адаптировать ваш почтовый ящик в соответствии с вашими личными потребностями, например, например:

  • триггер автоматические ответы на основе определенных строк, найденных в теле почта и/или предмета,
  • Блок отправителя бросая на бин электронные письма на основе адреса электронной почты отправителя или
  • хотя и более сложный, сделай свой собственный Спам-детектор введением алгоритма NLP в вашей программе.

Давайте начнем!

Установка его

Для этого проекта на работу вам нужно две вещи:

  • Установка правильного модуля
  • Включение Gmail API

Установите модуль EZGMail

Модуль хорошо работает, называется Ezgmail , и вы можете установить его с помощью обычной команды:

pip install ezgmail

или

pip3 install ezgmail

В качестве альтернативы вы можете запустить

pip install --user -upgrade ezgmail

В Windows, чтобы убедиться, что вы получите последнюю версию.

Чтобы проверить его правильно, вы можете проверить версию со следующей аргументом командной строки:

pip show ezgmail 

Обратите внимание, что этот модуль не производится или аффилирован с Google. Он был разработан программным программным программным программ Al Sweigart И вы можете найти все детали здесь: https://github.com/asweigart/ezgmail

Включение Gmail API

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

Итак, начните, подписавшись на новую учетную запись Gmail, затем посетите эту страницу: https://developers.google.com/gmail/api/quickstart/python

Нажмите включить кнопку API Gmail, затем заполните форму, после чего вы увидите ссылку на CredganceS.json Файл, который вам придется скачать и размещать в том же каталоге, что и ваш файл Python. Это требование для работы кода. (Для тех, кто не знает, в основном, JSON – популярный и широко распространенный формат, который выглядит как Словарь в Python.)

Рассмотрим этот файл содержимого таким же, как ваш пароль Gmail, поэтому держите его в секрете.

Когда вы запустите свой код Python для управления учетной записью Gmail, код сначала посетит JSON каталог файлов для того, чтобы получить свои учетные данные из CredganceS.json файл.

Это обеспечивает дополнительную безопасность как в отличие от других модулей, с Ezgmail Вам не нужно вводить в обычный текст свои учетные данные в программе.

Время начать: введите следующий код:

import ezgmail, os
# change dir to the one where json credentials are saved:
os.chdir(r'C:/path_to_credentials_json_file')
ezgmail.init()

В качестве побочного замечания обратите внимание, что вы могли бы достичь то, что делает вторая строка (I.E., изменение текущего рабочего каталога в каталог, содержащий файл Credentance.json ) с Python Exec () Функция!

Что-то типа:

exec(import os; os.system(cd path_to_credentials_json_file))  

.init () Метод откроет ваш браузер к странице Google, где вы можете войти. Введите свои учетные данные, вы можете посмотреть, что это приложение не подтверждено: это нормально (поверьте мне, я сделал это до вас, и я в порядке!), Нажмите Продвинутый Тогда Перейти к QuickStart (небезопасно) Отказ

Когда следующая страница предложит вам QuickStart, хочет получить доступ к вашей учетной записи Google, позвольте ее закрыть браузер.

Вы почти сделаны с фазой настройки.

Что только что произошло, это Token.json Файл был создан, и это будет использоваться для предоставления вашего кода Python Access к учетной записи Gmail, которую вы создали для этого проекта. Держите это тоже безопасно.

Так что отныне вам больше не нужно вручную вводить свои учетные данные.

Ты приятно идти! Начало сейчас .init () Метод больше не должен быть необходим.

Отправка писем

Метод довольно прост: ezgmail.send ()

ezgmail.send('recipient@gmail.com', 'test', 'hello world!')

Вот аргументы, которые вы можете пройти:

Обязательно args являются:

  • получатель
  • предмет
  • тело

Необязательно, кварги являются:

  • Приложение (вы можете пройти список, если есть несколько)
  • отправитель
  • CC (может не работать в данный момент, согласно странице GitHub)
  • BCC (может не работать в данный момент, согласно странице GitHub)

Забыли адрес электронной почты Token.json был настроен?

Просто проверьте атрибут ezgmail.email_address 🙂.

ezgmail.EMAIL_ADDRESS

Получение электронной почты

Существует два этапа:

  • Чтение электронной почты и
  • Загрузка его вложений.

Чтение почты

Ezgmail Структуры пакетов электронные письма так же, как клиент электронной почты GUI: он организует их в потоки, которые могут в свою очередь, содержат несколько сообщений.

Следовательно, метод .unread () Перечисляет Gmailthread объекты.

print(ezgmail.unread())

Хотите прочитать определенное письмо в теме?

. Удача Атрибут – это то, что вам нужно. Это подписан:

unreadThreads = ezgmail.unread()
print(unreadThreads[0].messages[0].body)

Он поставляется с кучей атрибутов, таких как отправитель , получатель , Тело , Timestamp и т.п.

Также проверьте () Способ: он дает 25 самых последних потоков вашей учетной записи Gmail.

recentThreads = ezgmail.recent()
print(ezgmail.summary(recentThreads))

Загрузка вложений

А GmailMessage Объект несет атрибут вложений, который является Список имена файлов.

Передать любую комбинацию этих имена файлов в .Downloadatchment () Способ для загрузки файлов или если вы хотите все их, используйте .Downloadallattachments () Метод, который даже имеет аргумент, позволяющий вам указать, где загружать файлы (по умолчанию текущий рабочий каталог).

Поиск почты

Вы догадались, что это использует ezgmail.search () Способ!

Введите строку в этом методе, как будто вы бы в почтовом ящике GUI.

resultThreads = ezgmail.search('json')
ezgmail.summary(resultThreads)

Это возвращает список потоков (запомнить Gmailthreads объекты?)

Затем вы можете пройти указанные выше атрибуты для получения конкретной информации о сообщении.

Куда пойти отсюда?

Попробуй сам!

И открывайте другие функции, предоставляемые этим эффектинным и удобным для пользователя модулем!

  • Может быть, вам нужно, чтобы автоматизировать рассылку?
  • Или для настройки напоминаний по электронной почте для вашей личной необходимости?
  • Или на работе?

Дайте нам знать!

Несколько заключенных замечаний:

  • В целом, для этого работать учетная запись электронной почты должна быть настроена с самым низким уровнем безопасности, иначе электронная почта заканчивается либо заблокированным или в спамах.
  • Вы не сможете отправлять повторные электронные письма с тоим тем же текстом (как эти, вероятно, являются спамами), ни с .exe вложения (так как они, вероятно, вирусы)
  • Пожалуйста, используйте эту технологию ответственно
  • Благодаря Al Sweigart для создания и поддержания этого удивительного модуля
  • только потому, что в настоящее время работает работает, не означает, что он навсегда; Это зависит от вариантов Googles среди прочего, и этот модуль поведение во времени не может быть гарантирован

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

Профиль Freelancer Linkedin профиль