将电子邮件分析器创建为服务



我正在尝试讨论如何创建电子邮件解析器。我从技术上了解如何做到这一点,但我无法弄清楚实现细节。

因此,用户将电子邮件

发送到一个地址,邮件服务器接收,我的应用程序根据主题、内容对其进行解析,并将其放入存储桶(电子邮件帐户或数据库)中,然后我就可以对其进行操作。

那么我是否

使用现有的邮件服务器软件(例如我们已经运行的 Zimbra),或者我是否创建一个侦听端口 25 并专门执行我需要的应用程序?(意味着此框上没有运行邮件服务器软件等)

的目标是根据我自己发的电子邮件,以自动化的方式为自己创建一系列供个人使用的组织工具。

编写一些东西来侦听端口 25 并充当 SMTP 服务器将涉及,并且对于您想要的内容来说可能矫枉过正。

我认为有两个主要选择。第一种方法是保留现有的邮件服务器,然后通过 IMAP(或 POP3)轮询该邮件服务器上的帐户以检索电子邮件,然后使用脚本处理它们。你熟悉哪种语言并不重要,因为有库可以处理IMAP连接,然后用大多数语言解析电子邮件。

或者,您可以查看像 http://CloudMailin.com 这样的服务,为您执行此操作。它将接收电子邮件并将其发送到一个 Web 应用程序,您可以通过 http 帖子以类似 JSON 格式创建该应用程序。

我会选择轮询邮箱的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)

相关内容

最新更新