zope mailhost将邮件路由到其他邮件主机
collective.multimail的Python项目详细描述
内容
Introduction
允许您使用多个邮件主机。电子邮件按以下规则筛选 确定要向哪个邮件主机发送特定电子邮件。每个规则都适用 电子邮件标题的正则表达式,如“to”、“from”和“subject”。 可以配置脚本或视图来代替mailhost,以允许自定义 行为。
潜在用途包括:
- 根据发件人使用不同的SMTP服务器;
- 将特殊电子邮件地址扩展为多个发送呼叫;
- 通过外部api(如twitter)发送
- 添加附加标题或更改标准plone电子邮件的文本。
例如,如果您有一个规则链:
- header-match: {to: 'allsubscribers@notarealdomain'} action: 'send and stop' mailhost: '/sendtoall' # Catch-all rule, uses the patched MailHost object. - action: 'send and stop' mailhost: 'default'
还有一个python脚本sendtoall:
def sendtoall(messageText, mto=None, mfrom=None, subject=None, encode=None, immediate=False, charset='utf8', msg_type=None): for email in context.getSubscribers(): context.MailHost.send(messageText, email, mfrom, subject, encode, immediate, charset, msg_type)
您可以在contentrules中使用电子邮件地址allsubscribers@notarealdomain,或者 在plone的其他地方向订户数据库发送电子邮件。
Details
可以通过通用安装程序安装,也可以通过添加zmi来安装。一次多邮件主机 对象与普通的mailhost对象monkeypatch放在同一个文件夹中 to mailhost将允许multimail处理所有电子邮件发送。
Rule definition
规则链是规则定义的yaml列表。 规则定义可以包含:
- 标题匹配
- 用于“to”、“from”等标题的正则表达式字典。
- 动作
- “发送并继续”、“发送并停止”或“停止”
- 邮件宿主
- 指向imailhost对象或可调用对象的可遍历路径。Callables需要支持 参数(messagetext、email、mfrom、subject、encode、immediate、charset、msg_type)。 路径是相对于multimailhost的,路径以zope根目录/start开始。
规则是自上而下评估的。
规则是通过ZMI制定的。
default是一个特殊的mailhost,它使用未筛选的原始mailhost对象。如果 您希望重新发送电子邮件并对其进行筛选,然后使用/MailHost。
TODO
- []用ploneformgen进行测试
- []当电子邮件作为包含标题的文本(如pfg)发送时,处理匹配问题。
- []能够禁用MonkeyPatch,因此可以单独使用
- []脚本遍历周围的安全性
Contributors
- 亚当·特雷,原作者
- 迪伦·杰
- 伊万·特奥
Changelog
1.0a6 (2014-01-17)
- 切换到monkey补丁来解决被覆盖的问题 (DJAY)
- 允许使用视图的普通python脚本。 (DJAY)
- 当从PloneformGen或通过Acquisition调用时修复问题 (伊万特)
- 添加匹配规则的测试 (伊万特)
1.0a4 (2013-05-29)
- 首次发布 (阿特瑞)
1.0a1 (unreleased)
- 初始版本 (阿特瑞)