我感兴趣的是在收到来自特定地址的具有特定主题的电子邮件时触发特定的操作。为了能够做到这一点,我需要实现对我的邮箱的监控,检查每一封收到的邮件(特别是我使用gmail)。做到这一点最简单的方法是什么?
发布于 2009-08-05 04:04:04
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是如何做到的。
发布于 2009-08-04 03:18:24
Gmail为新的电子邮件消息提供了一个atom feed。您应该能够通过使用py cURL (或其他一些网库)进行身份验证并下载提要来监视这一点。对每封新邮件发出GET请求都应该将其标记为已读,这样您就不必记录您阅读了哪些电子邮件。
发布于 2009-08-04 04:17:40
虽然不是Python特定的,但我一直喜欢在任何我可以安装它的地方安装procmail…!
只需将其用作您选择的条件的一些操作行| pathtoyourscript
(竖线AKA管道,后跟您想要在这些情况下执行的脚本),您的邮件将在您选择的条件下通过管道传输到您选择的脚本,让它做它想做的任何事情--很难想出一种更通用的方法来“在收到满足您特定条件的邮件时触发您选择的操作!!”当然,对于您可以检查的条件数量、单个条件可以触发多少操作行(只需将您想要的所有操作行包含在{ }
大括号中)等等,都没有限制。
https://stackoverflow.com/questions/1225586
复制相似问题