繁体   English   中英

使用python处理动态电子邮件地址

[英]Process dynamic email addresses using python

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

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

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

因此,例如,如果收到电子邮件“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记录来处理这样的事情?

谢谢你的帮助。

更新 :我对谷歌应用程序引擎建议做了一些更多的研究,它可能会工作,但我需要更改太多的东西,它会添加太多的移动部件。 我还需要一个捕获所有电子邮件转发器,谁知道任何好的便宜的? 我更喜欢部署在处理所有电子邮件的系统上。 看起来人们在端口25上使用了postfix监听并将请求转发给lamson。 这似乎是合理的,我将试一试,看看它是怎么回事。 我会用我的结果更新。

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

http://mailgun.net

http://www.emailyak.com

我已经使用动态电子邮件地址完成了一些项目的工作,但从未同时使用动态子域。 我对你的问题的看法:

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

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

    GAE电子邮件的一个缺点就是不得不使用*@yourappname.appspotmail.com ,但是您可以通过为*@yourdomain.com设置一个全能的电子邮件转发器将所有内容发送到secretaddress@yourappname.appspotmail.com来解决secretaddress@yourappname.appspotmail.com 这样您就可以在自定义域上接收消息并使用GAE处理它们。

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

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

对于lamson,你尝试过如下简单的事情:

@route("(address)@(subdomain).(host)", address=".+", subdomain="[^\.]+")
def START(message, address=None, subdomain=None, host=None):
    ....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM