С тех пор 1.6, был java.util. ServiceLoader, который может использоваться, если Вы хотите кодировать свою собственную простую систему.
, Но если Вы хотите что-то большее чем основные характеристики, используйте одну из существующих платформ.
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 предоставляет атом канал для новых сообщений электронной почты. Вы должны иметь возможность отслеживать это, аутентифицируясь с помощью py cURL (или какой-либо другой сетевой библиотеки) и вытаскивая канал. Выполнение запроса GET для каждого нового сообщения должно помечать его как прочитанное, поэтому вам не придется отслеживать, какие электронные письма вы прочитали.
Хотя и не зависит от Python, мне всегда нравился procmail , где бы я ни мог его установить ...!
Просто используйте в качестве некоторых из ваших строк действий для условий на ваш выбор | pathtoyourscript
(вертикальная черта AKA pipe, за которой следует сценарий, который вы хотите выполнить в этих случаях), и ваша почта будет перенаправлена в соответствии с выбранными вами условиями сценарию по вашему выбору, чтобы он делал все, что захочет - трудно придумать более общий подход к «запуску действий по вашему выбору при получении писем, соответствующих вашим конкретным условиям!» Конечно, нет никаких ограничений на количество условий, которые вы можете проверить, сколько строк действий может вызвать одно условие ( просто заключите все нужные строки действий в {}
фигурные скобки) и т. д.
Я нашел довольно хороший фрагмент , когда хотел сделать то же самое (а в примере используется gmail). Также проверьте результаты поиска Google по этому поводу.
Люди, похоже, взволнованы Ламсоном:
https://github.com/zedshaw/lamson
Это SMTP-сервер, полностью написанный на Python. Я уверен, что вы могли бы использовать это, чтобы делать все, что вам нужно - просто пересылайте сообщения Gmail на этот SMTP-сервер, а затем делайте то, что хотите.
Однако я думаю, что, вероятно, проще всего выполнить приведенную выше рекомендацию по каналу ATOM.
РЕДАКТИРОВАТЬ: Ламсон был заброшен
Недавно я решил эту проблему, используя 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