用于从内容中提取地址发送电子邮件的Plone内容规则
项目描述
简介
此产品将为Plone添加新的内容规则,某种程度类似于默认的“发送电子邮件”规则。区别在于电子邮件收件人是从站点内容动态获取的,而不是从静态值列表中获取。
这样,同一规则在站点不同位置应用时,可以将消息发送给不同的用户。
如何使用
规则可以像其他所有默认Plone功能一样,在全局和本地启用。在规则配置面板中,您需要填写一系列信息
- 主题
电子邮件主题。您可以在此文本中放置一些标记(见下文)。
- 发件人电子邮件
电子邮件的发件人。您可以留空并自动使用通用邮件设置中的电子邮件。
- 源字段
您必须放入您想要从中检索收件人电子邮件的属性的名称。请参阅下一节。
- 目标元素
您需要选择收件人的电子邮件是否必须从以下内容中获取
激活规则的容器中
通知规则执行事件的内容
该内容的父级
详细信息请参阅下文。
- 邮件消息
将要发送的电子邮件正文。文本对所有激活规则的章节相同。
您可以在此文本中放置一些标记(见下文)。
如何获取电子邮件数据
首先,您必须选择目标元素。
如果您选择保留默认的“从规则容器中”选项,地址将从您激活规则的部分读取。
示例:如果您在文件夹 /site/section 上激活了规则,并且当处理文档 /site/section/folder/foo 时规则将引发事件,则电子邮件地址将从文件夹中获取。
将“从触发事件的内容中”更改为将更改行为,尝试从引发事件的 内容中获取电子邮件数据。
示例:如果您在文件夹 /site/section 上激活了规则,并且当处理文档 /site/section/folder/foo 时规则将引发事件,则电子邮件地址将从文档 foo 中获取。
最后,如果您选择“从内容父级中”,地址将从引发事件的内容的容器中获取。
示例:如果您在文件夹 /site/section 上激活了规则,并且当在文档 /site/section/folder/foo 上工作时,规则会引发事件,那么电子邮件地址将从 folder 中获取。
尝试读取的内容
规则尝试从对象
获取指定名称的属性
从指定名称获取可调用的方法
获取具有指定 id 的 Archetypes 字段
获取具有指定 id 的 ZMI 属性
规则将依次读取所有这些数据。找到的第一个匹配项将被使用;如果没有找到匹配项,则不会发送任何电子邮件。
消息插值
后续的标记标签可以在消息文本和主题中使用。
- ${title}
触发事件的内容的标题(在我们例子中的 foo 标题)
- ${url}
触发事件的内容的 URL(在我们例子中的 foo URL)
- ${section_name}
激活规则的文件夹的标题(在我们例子中的 section 标题)
- ${section_url}
激活规则的文件夹的 URL(在我们例子中的 section URL)
真实的Plone用例
Plone 网站使用 Signup Sheet 来管理内部培训课程。表单字段集被正常定制,但其中一个字段是 director_email。
我们希望当用户订阅并自己输入适当的主任的电子邮件地址时,通知此电子邮件地址。
为了达到这个目的,我们需要
创建一个新的规则,该规则在“对象添加到此容器”时触发
添加一个基于内容类型 Registrant 的过滤器条件
使用“从内容中获取的地址发送电子邮件”添加一个操作
在操作中指定 SignupSheet 字段,包含主任的电子邮件
在操作中指定我们希望从目标内容(注册者本身)获取电子邮件
待办事项
为什么不支持也查找注释呢?
目前,规则按照定义的顺序检查所有邮件源,直到找到一个为止;也许将此选择留给配置会更好。
Dexterity 支持(可能已经存在,但需要测试)
需求
此产品已在以下环境中进行了测试
Plone 4.2 版本 0.4
Plone 4.3 版本 0.4
Plone 5.0
Plone 5.1
致谢
在 S. Anna Hospital, Ferrara 的支持下开发;S. Anna Hospital 支持 PloneGov 创新项目。
此产品大部分是在查看 collective.contentrules.mailtogroup 的源代码时开发的。
变更日志
1.2.1 (2023-06-20)
在成功提交事务时发送电子邮件(#9)[mamico]
1.2.0 (2023-06-19)
更改邮件发送方法,并允许最终添加附件。[cekk]
1.1.0 (2023-06-19)
Plone 6 支持 [foxtrot-dfm1]
1.0.1 (2021-03-10)
如果未提供邮件,允许到达操作执行的末尾。您不希望页面因为缺少电子邮件而中断。对于匿名用户,这将是一个糟糕的用户体验 [lucabel]
1.0.0 (2020-11-23)
将代码迁移到 Plone 5/python 3。[lucabel]
添加对 plone.stringinterp 的支持。[cekk]
0.4.0 (2015-03-13)
删除 Plone 3 兼容性
修复了一些不兼容 i18n 的标签 [keul]
修复了在版本 0.3 中引入的错误文档:新“parent”选项被错误描述 [keul]
更新文档以反映版本 0.3 中所做的更改 [keul]
0.3.0 (2014-05-06)
修复替换字符串时的 Unicode 错误 [nicolasenno]
如果规则在一个非 AT 内容上激活,则不会失败 [keul]
不要尝试向空字符串收件人发送邮件 [keul]
重构 [alert]
在目标词汇表中添加了父选项 [alert]
0.2.0 (2013-05-02)
将日志级别降低到调试 [keul]
修复了 ruleAction 工厂 [cekk]
0.1.0 (2011-10-21)
初始发布
项目详情
collective.contentrules.mailfromfield-1.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 97485f83342927946c333d8119c52784f28cec6bf9e47e789825095ecf29253d |
|
MD5 | 9643501779e42d7beb9467cf61741946 |
|
BLAKE2b-256 | 974ad0c792282281eceebfdf017562764fcd924399e12c386861ca0dd85afe41 |
collective.contentrules.mailfromfield-1.2.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b862e4bf6f6b715a4fb5c414265e15a6ab5028d999f03931e5c969403986a3b3 |
|
MD5 | 3959af1056aab3791adda3d2049523c7 |
|
BLAKE2b-256 | ee193addf3e7fe7a6079d64e3f4bd0c2fbac48b4aba1344f2e9904416604eadb |