0

我有用户发送包含一些我需要提取的文本的电子邮件。每个用户的电子邮件都映射到一个邮箱。我目前正在使用一个 cron 作业,该作业每 5 分钟轮询一次邮箱(后缀),检查新消息,并将其发送到我让工作人员解析它们的队列。我有两个主要问题:

  1. 有没有一种方法可以在收到电子邮件后立即解析而不是轮询服务器?另外,我怎样才能实现它是可扩展的?例如,如果每秒有 50 条传入消息。
  2. 我正在以编程方式编写每个用户的电子邮件地址以指向 postfix 配置文件中的邮箱。创建一个catch all帐户会更好,这样我就不必写每个电子邮件地址了吗?但是,我知道包罗万象的帐户更容易受到垃圾邮件的影响。
4

3 回答 3

2

使用管道别名捕获电子邮件,然后使用 celery 将其转储到 MQ 中进行处理。

于 2010-12-25T02:20:47.720 回答
1

是的,这可以很容易地完成。您需要做的就是将后缀配置为将电子邮件转发到脚本而不是邮箱。它不一定是包罗万象的,您可以配置 postfix 以将特定电子邮件转发到脚本。该脚本可以用任何语言编写。我在php中写了几次这样的脚本。对于非常繁忙的服务器,例如每秒 50 封电子邮件,另一种可能性是编写您自己的过滤器服务器,然后配置 postfix 以将每条消息传递给您的过滤器。

要将电子邮件转发到脚本,请在别名文件中输入如下一行:路径必须指向此文件

someaccount |/usr/local/bin/emailParser.php

要将电子邮件转发到过滤器,必须在 master.cf 中进行配置,这有点困难。

于 2010-12-25T02:27:33.577 回答
0
  1. 我建议为此使用 Procmail。它专为处理您的传入邮件而设计,您可以将具有特定属性的所有邮件传递给您的应用程序。

    http://www.procmail.org/

  2. 通过监控机器上的所有邮件,通常可以很容易地解决包含所有地址的垃圾邮件问题。如果多个地址收到相同的邮件,则很有可能是垃圾邮件。

于 2010-12-25T02:20:51.703 回答