Zope MailHost,用于将邮件路由到其他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)
您可以使用电子邮件地址 allsubscribers@notarealdomain 在内容规则或Plone的其他位置发送电子邮件到订阅者数据库。
详细信息
您可以通过通用设置或添加到ZMI来安装。一旦MultiMailHost对象放置在正常MailHost对象相同的文件夹中,对MailHost的monkeypatch将允许MultiMail处理所有电子邮件发送。
规则定义
规则链是一个规则定义的YAML列表。规则定义可以包含
- header-match
包含“to”,“from”等头部的正则表达式字典。
- action
可以是“发送并继续”,“发送并停止”或“停止”
- mailhost
一个可遍历的路径到一个IMailHost对象或可调用对象。可调用对象需要支持(messageText,email,mfrom,subject,encode,immediate,charset,msg_type)参数。路径相对于MultiMailHost,以/开始的路径从Zope根开始。
规则按从上到下的顺序评估。
规则通过ZMI设置。
default是一个特殊的邮件主机,它使用未经过滤的原始邮件主机对象。如果您想重新发送电子邮件并对其进行过滤,请使用/MailHost。
待办事项
[ ] 使用PloneFormGen进行测试
[ ] 处理发送时作为文本包括头部(如PFG)的匹配
[ ] 具有禁用monkeypatch的能力,因此可以独立使用
[ ] 遍历到脚本的安全问题
贡献者
Adam Terrey,原作者
Dylan Jay
Ivan Teoh
变更日志
1.0a6 (2014-01-17)
切换到monkey patching以解决被覆盖的问题(djay)
允许使用常规的视图Python脚本。(djay)
修复从PloneFormGen或通过acquisition调用时的问题(ivanteoh)
添加匹配规则的测试(ivanteoh)
1.0a4 (2013-05-29)
首次发布(aterrey)
1.0a1 (未发布)
初始版本(aterrey)