[英]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
更多背景:
问题:
谢谢你的帮助。
更新 :我对谷歌应用程序引擎建议做了一些更多的研究,它可能会工作,但我需要更改太多的东西,它会添加太多的移动部件。 我还需要一个捕获所有电子邮件转发器,谁知道任何好的便宜的? 我更喜欢部署在处理所有电子邮件的系统上。 看起来人们在端口25上使用了postfix监听并将请求转发给lamson。 这似乎是合理的,我将试一试,看看它是怎么回事。 我会用我的结果更新。
更新2 :我做了一些更多的研究,我发现有几个网站为我做了类似的事情,所以我接下来会看看它们。
我已经使用动态电子邮件地址完成了一些项目的工作,但从未同时使用动态子域。 我对你的问题的看法:
我从来没用过Lamson,所以我不能对此发表评论。
我通常使用App Engine的API来接收和处理传入的消息,并且它运行良好。 您可以轻松地将每个收到的消息转换为您自己服务器上的基本POST
请求,例如To
, From
, Subject
和Message
字段,并使用标准django处理这些Message
。
GAE电子邮件的一个缺点就是不得不使用*@yourappname.appspotmail.com
,但是您可以通过为*@yourdomain.com
设置一个全能的电子邮件转发器将所有内容发送到secretaddress@yourappname.appspotmail.com
来解决secretaddress@yourappname.appspotmail.com
。 这样您就可以在自定义域上接收消息并使用GAE处理它们。
GAE的另一个问题/好处是使用Google的服务器而不是您自己的服务器(至少对于电子邮件位)。
对于子域问题,您可以尝试为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.