发布新评论时发送电子邮件通知


15

我正在使用带有规则8.x-3.0-alpha1的Drupal 8.1。

我想创建一个规则,以便在向该节点发布新评论时向该节点的作者发送电子邮件。问题是我没有获得带有规则的作者的电子邮件地址,因为数据集仅给我以下值:@ node.node_route_context:node或comment,但是在comment下我找不到诸如comment:node:author之类的东西。在Drupal 7中,我有此数据。我在Drupal 8中需要做什么?


规则的alpha状态可能意味着该功能尚未实现,需要您自己对其进行修补。
Bojan Zivanovic,

1
谢谢,但似乎是令牌模块的问题。因为诸如实体通知之类的其他模块也无法获得author:mail。该令牌似乎已损坏。
lolhonk '16

Answers:


5

更新的答案

在全新安装的带有规则的Drupal 8(Alpha 2)上进行测试时,我遇到了一个错误,阻止了对此的成功测试,而下面的数据选择器是正确的,我目前无法重现工作规则。

该错误报告在这里:https : //www.drupal.org/node/2770291-总结此问题,Rules期望TO:参数为数组,并且在传递电子邮件地址令牌时将引发错误,该令牌下面将返回一个串。

我的最初答案适用于Drupal 7,但是对于Drupal 8,情况似乎更简单,并且取决于尚未得到充分记录的单个事实。

在D7中,我们熟悉类似于以下语法: comment:node:author:mail

在D8中,相同的选择器(有效)是: comment.entity_id.entity.uid.entity.mail.value

希望这会有所帮助,如果有其他帮助,我将在下面保留上一个答案。

上一个答案

*通常,对于使用字段值的规则,规则必须首先专门检查该字段的存在(即,该字段在规则正在运行的上下文中具有值)。如果您尚未尝试过此操作,则可能要尝试在规则中添加“实体具有字段”条件,以检查电子邮件地址是否存在。然后,这应该公开该字段的令牌。

使用实体关系执行规则时,我遇到过类似的问题(这或多或少是通过从节点引用作者来完成的)检查字段是否存在(在您的情况下,很可能是检查实体是否具有作者(应打开对用户对象的访问权限),然后检查该用户对象以确保它具有电子邮件地址),打开了引用实体的可用字段标记。*


我很想看到此答案中包含的工作规则,该规则实际上针对的是D8的问题。您能否更新您的答案以包括这样的示例(使用“ 规则”模块的最新D8版本?PS:从对该问题的支持数量来看,似乎还有其他用户也在寻找类似的东西……
皮埃尔。 Vriens

当然,这是个好主意,这将花费我一些时间来启动一个新的测试站点来生成它。
HomoTechsual

等不及要尽快查看更新的答案。虽然旋转一个合适的站点实际上仅需单击一下即可...使用https://simplytest.me/project/rules,接受(默认)版本的8.x-3.0-alpha2并点击“ 启动沙箱 ”-按钮。完成后,您将具备“快速”构建您所记住的规则所需的一切。然后将其导出,然后将导出的文件复制/粘贴到此处。然后,让我知道(额外评论?),您的规则已准备就绪,可以进行质量检查。如果您可以在未来几天内将其发布到某个地方,那将是很好的……如果可以的话。
Pierre.Vriens

嗨,@ Pierre.Vriens,您好,我编辑了我的评论,在D8上玩了Rule之后,结果变得不像我想的那么复杂,更多是因为D8中的选择器发生了变化。
HomoTechsual

我也不知道为什么我总是忘了SimplyTest.me
HomoTechsual

1

2016年11月发布的“规则”发布队列中有一个有效的示例,因此至少从那时起就可以实现。参见https://www.drupal.org/project/rules/issues/2828422

这是该答案的稍作修改的版本。您可以将其导入您的站点并在UI中查看它,以了解如何配置此功能。

langcode: en
status: true
dependencies: {  }
id: 'email_node_author_on_new_comment'
label: 'Email Node Author on New Comment - Issue 2828422'
events:
  -
    event_name: 'rules_entity_insert:comment'
description: 'Sends email to Node Author when a New Comment is added.'
tags:
  - node
  - email
  - comment
config_version: '3'
expression:
  id: rules_rule
  uuid: b5276280-d0f2-4f64-9512-06f077793c58
  conditions:
    id: rules_and
    uuid: ebf212fc-d858-417d-977d-af1be2cfd886
    conditions: {  }
  actions:
    id: rules_action_set
    uuid: 88a78280-2bca-4367-a4d3-8bbda9397c2a
    actions:
      -
        id: rules_action
        uuid: 5e6e5aed-b75f-412a-9670-48327eb58ba6
        context_values:
          to:
            - '{{ comment.entity_id.entity.uid.entity.mail }}'
          subject: 'Your content {{ comment.entity_id.entity.title }} has a new comment.'
          message: 'Your content {{ comment.entity_id.entity.title }} has a new comment.'
          reply: ''
          language: ''
        context_mapping: {  }
        context_processors:
          to:
            rules_tokens: {  }
          subject:
            rules_tokens: {  }
          message:
            rules_tokens: {  }
          reply:
            rules_tokens: {  }
          language:
            rules_tokens: {  }
        provides_mapping: {  }
        action_id: rules_send_email
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.