跳转到主要内容

用于从内容中提取地址发送电子邮件的Plone内容规则

项目描述

Latest Version Supported - Python Versions Number of PyPI downloads License Tests Coverage

简介

此产品将为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 创新项目

OspFE logo

此产品大部分是在查看 collective.contentrules.mailtogroup 的源代码时开发的。

作者

此产品是由 RedTurtle Technology 团队开发的。

RedTurtle Technology Site

变更日志

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 (24.4 kB 查看哈希值)

上传时间 源代码

构建分发