用Python检查电子邮件

我有兴趣在收到特定主题的特定地址的电子邮件时触发某些操作。 为了能够这样做,我需要实现监视我的邮箱,检查每个传入邮件(特别是,我使用Gmail)。 最简单的方法是什么?

Gmail提供了通过POP进行连接的function,您可以在Gmail设置面板中打开该function。 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为新的电子邮件提供primefaces提要 。 你应该能够通过使用py cURL(或其他一些networking库)进行authentication来监视这个事件,并且下拉这个feed。 为每条新邮件发出GET请求应将其标记为已读,因此您不必跟踪已阅读的邮件。

虽然不是特定于Python的,但我一直喜欢procmail,只要我可以安装它…!

只要使用您的行动条件,您的select| pathtoyourscript | pathtoyourscript (垂直栏AKApipe道,后面跟着你想在这些情况下执行的脚本),并且你的邮件在你select的条件下| pathtoyourscript你select的脚本中,因为它可以做任何事情 – 很难想象的一种更一般的方法来“在接收到满足您特定条件的邮件时触发您所select的行为!!当然,您可以检查多less条件,单个条件可触发多less个行为线(没有限制你想在{ }括号中的行动线)等等,等等。

人们似乎对Lamson有所了解:

https://github.com/zedshaw/lamson

这是一个完全用Python编写的SMTP服务器。 我相信你可以利用它来做你需要的一切 – 只要将Gmail邮件转发到SMTP服务器,然后按照你的意愿做。

不过,我认为上面的ATOM Feedbuild议可能是最简单的。

编辑:Lamson已被放弃

当我想要做同样的事情时,我发现了一个相当不错的代码片断 (并且示例使用了gmail)。 另外检查一下这个谷歌search结果 。

我最近通过使用procmail和python解决了这个问题

阅读procmail的文档。 你可以告诉它将所有传入的电子邮件发送到一个像这样的Python脚本在一个特殊的procmailconfiguration文件

 :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')