1

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

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

那么我是使用现有的邮件服务器软件(比如我们已经在运行的 Zimbra)还是创建一个侦听端口 25 并专门执行我需要的应用程序?(意味着没有邮件服务器软件在这个盒子上运行,等等)

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

4

2 回答 2

1

编写一些东西来侦听端口 25 并充当 SMTP 服务器将涉及到,并且可能对你想要的东西过度杀伤。

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

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

于 2012-05-01T08:40:00.903 回答
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)
于 2012-04-30T15:34:32.120 回答