Проверка электронной почты с помощью Python

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

7 Solutions collect form web for “Проверка электронной почты с помощью Python”

Gmail предоставляет возможность подключения через POP, который вы можете включить на панели настроек gmail. Python может легко подключаться к POP:

import poplib from email import parser pop_conn = poplib.POP3_SSL('pop.gmail.com') pop_conn.user('username') pop_conn.pass_('password') #Get messages from server: messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)] # Concat message pieces: messages = ["\n".join(mssg[1]) for mssg in messages] #Parse message intom an email object: messages = [parser.Parser().parsestr(mssg) for mssg in messages] for message in messages: print message['subject'] pop_conn.quit() 

Вам просто нужно запустить этот скрипт как задание cron. Не знаете, на какой платформе вы работаете, поэтому YMMV о том, как это делается.

Gmail предоставляет Atom- канал для новых сообщений электронной почты. Вы должны иметь возможность отслеживать это путем аутентификации с помощью py cURL (или какой-либо другой сетевой библиотеки) и вытаскивать фид. Выполнение запроса GET для каждого нового сообщения должно означать его как прочитанное, поэтому вам не нужно будет отслеживать, какие электронные письма вы прочитали.

Хотя я не был специфичен для Python, я всегда любил procmail, где бы я мог его установить …!

Просто используйте как часть ваших линий действий для условий по вашему выбору | pathtoyourscript | pathtoyourscript (вертикальная полоса AKA, за которой следует сценарий, который вы хотите исполнить в этих случаях), и ваша почта попадает в соответствии с вашими условиями в соответствии с вашим выбором, чтобы он делал все, что захочет, – трудно думать более общий подход к «инициированию действий по вашему выбору при получении писем, которые отвечают вашим конкретным условиям! Конечно, нет ограничений на количество условий, которые вы можете проверить, сколько строк действий может вызвать одно условие (просто вложите все строки действий, которые вы хотите в { } брекетах) и т. д. и т. д.

Люди, похоже, накачаны о Ламсоне:

https://github.com/zedshaw/lamson

Это SMTP-сервер, полностью написанный на Python. Я уверен, что вы могли бы использовать это, чтобы делать все, что вам нужно – просто пересылайте сообщения Gmail на этот SMTP-сервер, а затем делайте то, что хотите.

Тем не менее, я думаю, что, наверное, проще всего сделать рекомендацию по подаче ATOM выше.

EDIT: Ламсон был оставлен

Я нашел довольно хороший фрагмент, когда захотел сделать то же самое (и на примере использует gmail). Также проверьте результаты поиска Google по этому вопросу.

Я недавно решил эту проблему, используя procmail и python

Прочтите документацию для procmail. Вы можете сказать ему отправить все входящие письма на скрипт python, как это, в специальный файл конфигурации procmail

 :0: | ./scripts/ppm_processor.py 

Python имеет доступный пакет «электронной почты», который может делать все, что вы, возможно, захотите сделать с электронной почтой. Прочитайте следующие …

 from email.generator import Generator from email import Message from email.MIMEBase import MIMEBase from email.MIMEText import MIMEText from email.mime.multipart import MIMEMultipart 
 print('please enter str') def email(n=str): if ('@' and '.') in n: z=n.find('@') c=n.find('.') if type(n[:z] and n[z:c] and n[c:])==str: print('valid email') else: print('Invalid email') else: print('Invalid email') 
  • Отправка электронной почты после очистки
  • Python - как изменить шрифт текста электронной почты
  • Не удалось получить сообщения gmail из любой папки, кроме папки «Входящие» (проблема Python3)
  • Как преобразовать тему электронной почты из «? UTF-8? ...? =» В читаемую строку?
  • Python рассчитывает старение почтовых отправлений
  • imaplib - Какое правильное имя папки для Archive / All Mail в Gmail?
  • проблема с обработкой электронной почты с помощью python и нескольких принятых записей
  • Разберите небольшую строку для имени и электронной почты?
  • Python: как разобрать тело из сырой электронной почты, учитывая, что у сырой электронной почты нет тега «Body» или что-то еще
  • IMAP получает имя отправителя и основной текст?
  • Отправить электронное письмо с помощью скрипта python
  • Python - лучший язык программирования в мире.