Проверение электронной почты с Python

С тех пор 1.6, был java.util. ServiceLoader, который может использоваться, если Вы хотите кодировать свою собственную простую систему.

, Но если Вы хотите что-то большее чем основные характеристики, используйте одну из существующих платформ.

51
задан Acumenus 22 October 2016 в 21:11
поделиться

6 ответов

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, как это сделать.

71
ответ дан 7 November 2019 в 10:04
поделиться

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

19
ответ дан 7 November 2019 в 10:04
поделиться

Хотя и не зависит от Python, мне всегда нравился procmail , где бы я ни мог его установить ...!

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

8
ответ дан 7 November 2019 в 10:04
поделиться

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

1
ответ дан 7 November 2019 в 10:04
поделиться

Люди, похоже, взволнованы Ламсоном:

https://github.com/zedshaw/lamson

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

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

РЕДАКТИРОВАТЬ: Ламсон был заброшен

4
ответ дан 7 November 2019 в 10:04
поделиться

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

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

:0:
| ./scripts/ppm_processor.py

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

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
0
ответ дан 7 November 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: