5

我需要做以下事情,我想知道是否有人做过类似的事情,如果有,他们做了什么。

我需要编写一个程序来处理不同客户的传入电子邮件,处理它们,然后根据电子邮件地址做一些事情(添加到数据库、回复等)。

使这更具挑战性的是电子邮件地址不是静态的,它们是动态的。例如。电子邮件将是这样的。 动态-email1@dynamic-subdomain1.domain.com。在此示例中,电子邮件由客户端使用动态子域进行分组,它将是“动态子域 1”。客户将拥有分配给他们的自己的子域。每个客户都可以在其子域下创建自己的电子邮件地址,并将事件分配给该电子邮件。这些电子邮件地址和子域可以随时更改,添加新的,删除旧的等等。

因此,例如,如果一封电子邮件是“dynamic-email1@dynamic-subdomain1.domain.com”的电子邮件,那么我需要在数据库中查找以找出哪个客户端被分配了“dynamic-subdomain1”子域,然后查看哪个事件映射到“dynamic-email1”的电子邮件地址,然后执行该事件。我已经进行了事件处理,只是不确定如何将电子邮件地址映射到事件。

由于电子邮件地址是动态的,因此使用基于文件的配置文件来处理它会很痛苦,最好在数据库中查找。我做了一些研究,发现一些项目做类似但不完全一样的事情。我找到的最接近的是 Zed Shaw 的 Lamson 项目: http: //lamsonproject.org

更多背景:

  • 我目前正在使用 python、django、linux、mysql、memcached。

问题:

  1. 有没有人用过 Lamson 来做我想做的事情,你觉得怎么样?
  2. 是否有任何其他项目可以做类似的事情,可能是除了 python 之外的不同语言?
  3. 我将如何设置我的 DNS MX 记录来处理这样的事情?

谢谢你的帮助。

更新:我对谷歌应用引擎的建议做了更多的研究,它可能会起作用,但我需要改变太多的东西,它会添加太多的移动部件。我还需要一个包罗万象的电子邮件转发器,有人知道有什么便宜的吗?我更喜欢部署在处理所有电子邮件的系统上。看起来人们已经使用 postfix 监听端口 25 并将请求转发给 lamson。这似乎是合理的,我将尝试一下,看看效果如何。我会更新我的结果。

更新 2:我做了更多的研究,发现有几个网站可以为我做这样的事情,所以接下来我会看看它们。

http://mailgun.net

http://www.emailyak.com

4

2 回答 2

1

我在几个使用动态电子邮件地址的项目上做了一些工作,但从来没有同时使用动态子域。我对你的问题的看法:

  1. 我从来没有使用过Lamson,所以我不能对此发表评论。

  2. 我通常使用App Engine 的 API来接收和处理传入的消息,它工作得很好。您可以使用例如、、、和字段轻松地将每个收到的消息转换为POST您自己服务器上的基本请求,并使用标准 django 处理这些请求。ToFromSubjectMessage

    *@yourappname.appspotmail.comGAE电子邮件的一个缺点是*@yourdomain.com必须使用secretaddress@yourappname.appspotmail.com. 这样您就可以在自定义域上接收消息并使用 GAE 处理它们。

    GAE 的另一个问题/好处是使用 Google 的服务器而不是您自己的服务器(至少对于电子邮件位)。

  3. 对于子域问题,您可以尝试为记录设置通配符 DNSMX,这(理论上)会将发送到任何子域的所有邮件定向到同一服务器。这将使您能够在所有子域上接收电子邮件(无论好坏——注意垃圾邮件!)

于 2011-03-29T19:04:58.337 回答
0

对于 lamson,您是否尝试过以下简单的方法:

@route("(address)@(subdomain).(host)", address=".+", subdomain="[^\.]+")
def START(message, address=None, subdomain=None, host=None):
    ....
于 2012-09-25T19:27:53.927 回答