我想弄清楚如何创建电子邮件解析器。我从技术上理解如何做到这一点,但我无法弄清楚实现细节。
因此,用户向地址发送电子邮件,邮件服务器接收并且我的应用程序根据主题,内容对其进行解析并将其放入存储桶(电子邮件帐户或数据库)中,然后我可以对其进行操作。
那么我是否使用现有的邮件服务器软件(如我们已经运行的Zimbra)或者我是否创建了一个可以侦听端口25的应用程序,并且具体做了我需要的东西? (意思是没有邮箱服务器软件在这个盒子上运行等)
我的目标是根据我自己发送的电子邮件,以自动方式创建一系列个人使用的组织工具。
答案 0 :(得分:1)
在端口25上编写要侦听的内容并充当SMTP服务器将会涉及到您想要的内容并且可能过度。
我认为有两个主要选择。第一种方法是保留现有的邮件服务器,然后通过IMAP(或POP3)轮询该邮件服务器上的帐户以检索电子邮件,然后使用脚本处理它们。你喜欢哪种语言并不重要,因为有些库可以处理IMAP连接,然后用大多数语言解析电子邮件。
或者,您可以查看像http://CloudMailin.com这样的服务。它将收到电子邮件并将其发送到您可以通过JSON格式的http帖子创建的Web应用程序。
答案 1 :(得分:0)
我会选择一个用于轮询邮箱的python脚本(基于cron作业)。 Python允许您非常轻松地访问IMAP,并具有强大的正则表达式功能来解析电子邮件内容。
尝试类似:
import imaplib, email
import re
M= imaplib.IMAP4_SSL('imap.gmail.com')
M.login('user', 'pass')
M.select('Imap_folder')
typ, data = M.search(None, 'FROM', '"*"')
for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)')
email_body = data[0][1] # getting the mail content
mail = email.message_from_string(email_body) # parsing the mail content to get a mail object
foo = re.compile("your regular expr here", re.MULTILINE)
res = foo.search(email_body)