每当我在Drupal 7中更新博客时,如何允许用户接收电子邮件?


11

我在Drupal 7中有一个英文和日文博客。我使用自定义内容类型和视图(而不是内置博客模块)创建了这个博客。

我有每种语言的RSS提要(在Views中制作)。我想允许用户订阅以接收对内容类型“博客”的所有英语更新或对内容类型“博客”的所有日语更新。(我预计大多数用户只希望使用一种或另一种语言。如果用户确实想要两种语言,那么我不介意让他们订阅两次。)

我研究了如何在RSS feed上使用Feedburner,但Feedburner模块尚未针对D7更新,因此我宁愿不依赖外部服务。(当我尝试设置不带该模块的Feedburner时,即使支持链接允许我对其进行验证,它也会告诉我我的RSS feed不存在。)

我还查看了Simplenews模块,但是该模块显然需要分别创建每个新闻稿。我要做的是在向博客发布更新时自动向订阅的用户发送电子邮件。

我敢肯定有很多方法可以做到这一点,但是有太多的“邮件助手”类型的模块让我对从哪里开始感到迷茫。

总结我的要求,我想:

  • 添加具有适当语言的新博客帖子时,自动向订阅者发送电子邮件。
  • 经过身份验证的用户和匿名用户都应该能够订阅。
  • 订阅必须要求确认(法律要求)。
  • MIME Mail模块的兼容性将是一个不错的选择。

Answers:


1

另一个替代方法是使用Google Feedburner代表您发送电子邮件。

有关更多信息,请参见在线文档

Google feedburner“烧录”您的提要后,您可以获取注册表单的嵌入代码,以便用户可以接收电子邮件警报。之所以如此适合您的需求,是因为这一切都围绕着拥有高质量的RSS提要源,而Views能够做到这一点。唯一真正的问题是,您是否只想在RSS(以及电子邮件)中拥有全部内容或预告片。

与上述新闻简报/触发选项相比,它的另一个优点是它仅发送每日摘要,因此,每个燃烧的RSS feed每天最多发送1封电子邮件。这可以防止您在工作日活跃时向忠实的订阅者发送垃圾邮件。

Google feedburner功能包括(直接来自上述文档):

订阅管理

  • 查看和排序列表
  • 激活,停用和删除单个电子邮件地址
  • 以Excel或CSV格式导出列表
  • 人们退订时会收到一封可选电子邮件

沟通偏好

  • 自定义订阅者选择通过电子邮件接收您的供稿后发送给订阅者的电子邮件的主题行和正文。如果要本地化电子邮件,这可能会派上用场。
  • 重要说明:电子邮件仅是文本,确认电子邮件中必须包含原始的$ {confirmlink}参考,才能激活订阅。

电子邮件品牌

  • 自定义发送给订户的电子邮件的主题行和标题
  • 添加显示在HTML电子邮件顶部的自定义徽标
  • 更改正文和标题文本的字体,大小和颜色以及链接的颜色

交付选项

  • 选择您的时区
  • 选择一个两个小时的发送窗口,您将在其中发送您的每日摘要

有关如何设置此功能的示例教程可在此处找到


感谢您提出Feedburner的建议,但正如最初的问题所指出的,尽管它能够验证它们,但它拒绝刻录我的提要。它给我的确切错误是“获取源供稿时收到HTTP错误代码400”。但是,当我单击错误页面上的“验证此提要”链接时,它告诉我提要有效。不幸的是,Feedburner也没有支持选项。
Patrick Kenny 2012年

我遇到了同样的错误,我们的问题是Google feedburner不支持SSL。简单的解决方案是允许HTTP访问提要。
wiifm 2012年

1
如果不允许对提要进行HTTP访问,则在最近的项目中,我们实际上通过Google阅读器代理了RSS提要,然后又将其代理到了Google feedburner中(但可以使用)。下面是来自该过程的示例进料feeds.feedburner.com/TranspowerNewsFeed -作为整个网站transpower.co.nz下HTTPS固定
WIIFM

给予此答案赏金很大,因为事实证明,与使用Simplenews相比,这对我来说在Feedburner中进行设置要容易得多,甚至不必通过Google Reader进行SSL重定向。
Patrick Kenny 2012年

5

这很容易获得。我可以给你一些步骤。

实际上至少有两种方法可以实现

A.使用触发器(核心模块)

  1. 首先激活核心模块触发器。这将为您提供基本的触发器(在您的情况下为UPDATE触发器)和满足条件时要运行的操作。

  2. 转到管理>配置>操作,然后创建一个高级操作,然后选择:发送电子邮件。在收件人字段中,您需要选择一个由simplenews模块提供的适当令牌,以匹配所有注册用户。(确保您还安装了令牌模块)

  3. 转到管理>结构>触发器,然后转到节点标签。选择第三个:触发器:保存更新后的内容。

如果您需要更多控制权,请实施挂钩

函数YOURMODULE_trigger_info_alter(&$ triggers){//在这里dpm($ triggers)查看更新触发器在哪里并进行更改。}?>

B.使用规则(contrib模块)基本相同。如果您遇到问题,请在此博客上的类似问题上执行以下步骤:http : //adellefrank.com/blog/how-to-email-notifications-comments-drupal7


1
“触发:保存新内容后”将在创建帖子时发送一封电子邮件,如果“触发:保存新内容后”将发送新电子邮件(如果帖子有任何更新)。
Citricguy 2012年

1
如果使用“规则”,为什么我要使用“发送电子邮件”操作而不是Simplenews模块提供的“发送电子邮件新闻”操作?
Patrick Kenny 2012年

5

Simplenews模块可满足您的所有需求。可以配置为将您的每个博客帖子自动成为新闻通讯并发送给订阅者。仅在Simplenews配置中,选择内容类型Blog作为新闻通讯源。

为此:

  1. 博客内容类型的开放配置表格(/ admin / structure / types / manage / blog)
  2. 在“发布选项”标签中,选中“用作simplenews新闻稿”

在Simplenews配置中,“新闻简报源”选项位于何处?我想我已经浏览过所有菜单,但没有发现类似的东西……
Patrick Kenny 2012年

请参阅上面的更新答案。
尤金·菲德林

1

如果要以编程方式执行此操作,请参阅drupal_mail($ module,$ key,$ to,$ language,$ params = array(),$ from = NULL,$ send = TRUE)

当节点被更新时,钩子hook_node_update($ node)将被触发。如果要创建自己的组合邮件格式,请使用hook_mail($ key,&$ message,$ params)。因此,您必须先编写2个hooks,然后再hook_node_update和hook_mail。在hook_node_update内部,您必须编写drupal_mail函数,该函数将调用您的hook_mail。


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.