【问题标题】:Drupal: "Send email" action not working to send email to poster of commentDrupal:“发送电子邮件”操作无法向评论者发送电子邮件
【发布时间】:2014-08-16 10:47:07
【问题描述】:

我已经成功地在我的客户博客上为管理员设置了新的 cmets 发布时的电子邮件通知,现在我正在尝试设置它以向评论的发布者发送一封感谢电子邮件。我使用here 所述的触发器和操作进行设置。

我按照该字段下方注释中的建议在操作配置表单的“收件人”字段中输入了[comment:author:mail],但它似乎从未发送过电子邮件。我最初使用我自己的电子邮件地址对其进行了测试,它运行良好,然后我以匿名用户的身份使用我的两个不同的电子邮件地址发表了评论,但从未收到过电子邮件。为什么[comment:author:mail] 不起作用?我在电子邮件正文中使用了其他变量(例如[comment:node:title]),它们运行良好。

我尝试按照 Drupal Answers 上的建议使用 Maillog,它验证了问题不在于邮件传递,而在于未正确填充电子邮件。

这是一个屏幕截图,显示给管理员的电子邮件工作正常,但感谢电子邮件却没有:

注意:我最初在 Drupal Answers 上发布了这个问题。我希望我在这里重新发布它不是问题,因为那里没有人提供解决方案。


感谢下面接受的答案,感谢对 Drupal Answers 的评论,我解决了这个问题 - 我需要使用 [comment:mail] 而不是 [comment:author:mail],因此它也适用于匿名评论者。事实证明,我不需要创建自定义字段。欲了解更多信息,请参阅https://drupal.stackexchange.com/a/126814/13378

【问题讨论】:

    标签: php email drupal


    【解决方案1】:

    令牌[comment:author:mail] 只能用于注册用户。

    看看 commet.token.inc

    if (($author_tokens = token_find_with_prefix($tokens, 'author')) && $account = user_load($comment->uid)) {
      $replacements += token_generate('user', $author_tokens, array('user' => $account), $options);
    }
    

    未注册用户(匿名用户)的 uid 为 0。

    Uid 0 实际上是一个用户,但它没有姓名、密码或其他信息。

    【讨论】:

    • 非常感谢...我猜我需要使用一个单独的模块,然后如果我希望它也可以与匿名用户一起使用。我会试试这个:drupal.org/project/thank_you_commenter
    • 您可以从字段 UI (/admin/structure/types/manage/[CONTENTTYPE]/comment/fields) 向评论实体添加一个新字段,并将其用作电子邮件地址字段。该字段的令牌将类似于 [comment:field_customfield] 如果您接受我的上一篇文章也很好。
    • 我本来打算接受你的帖子,但它没有提供替代建议,所以我打算先测试替代方案……但现在你已经提供了一个,所以谢谢。跨度>
    • 关于自定义字段,评论者已经看到了一个电子邮件字段,所以我需要隐藏默认字段以避免在创建自定义字段后显示 2 个电子邮件字段?
    • 感谢 Drupal Answers 上的评论解决了这个问题 - 我需要使用 [comment:mail] 而不是 [comment:author:mail] 所以它也适用于匿名评论者。事实证明,我不需要创建自定义字段。欲了解更多信息,请参阅drupal.stackexchange.com/a/126814/13378
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    相关资源
    最近更新 更多