MENU

Typecho 通过 Alicloud 和插件 LoveKKComment 实现评论邮件通知

• February 23, 2019 • Read: 1029 • 技术向

Typecho 通过 Alicloud 和插件 LoveKKComment 实现评论邮件通知

最开始选择 Typecho 就是看中了它轻巧,简单,非常适合作为个人记录的博客。使用过程中有了很多新需求,都在社区找到了对应的插件实现。

前段时间发现了一个新的需求:读者在博文下面留了言,博主回应后却没有通知读者。这样没有闭环的体验很不好,要是读者能够实时收到作者回复提醒(邮件通知是很好的实现方式),就能促进读者和博主的交流。

社区里大部分参考都是使用CommentToMail这款插件,以及各种在此插件基础上更新的插件,但是距离上次插件更新时间还是太过久远,我尝试了很多次,即使后台模拟发信能够成功,评论后仍然不能收到信件。

这里推荐一款新的插件LoveKKComment,插件的接口更加丰富:SMTP、SendCloud 服务、Alicloud DirectMail,且附带博客用户密码找回1功能,至今仍在维护。感谢 🎈

本文使用 Alicloud DirectMail 的 API 接口实现邮件推送。三种方式的选择见后文。

实现环境

  • 操作系统:CentOS 7.4
  • 技术基础
    默认已有私有服务器,拥有私有域名,安装了博客 Typecho 且有 Linux 基础
  • 阿里云邮件推送服务(Alicloud DirectMail):官方帮助文档
  • LoveKKComment:项目地址-github

开通 Alicloud DirectMail 服务

阿里云推送的作用是帮你把插件生成的邮件内容推送至评论时留下的邮箱中。通过阿里云可以把你喜欢的域名(一般是你博客域名)作为发信域名,类似于Cam@gmail.com中的gmail.com部分,你还能自由设置前缀,生成发信地址。本博设置了cam@mail.neversettle.club作为发信地址。是的,你现在评价后,就能收到这个地址发来的邮件,试一下?

配置过程需要配置发信域名,并且验证;配置发信地址;并且取得阿里云平台的授权。

发信域名

请移步阿里云教程:新建发信域名

教程很详细,特别注意两点:

  • 二级域名:建议使用二级域名,如mail.neversettle.club,避免对顶级域名neversettle.club产生影响
  • 验证时间:DNS 配置后的生效时间是 10 min,需要等待生效之后发信域名的验证才能通过

发信地址

请移步阿里云教程:新建发信地址

特别注意一点:

  • 发信类型选择触发邮件

获取授权 —— accesskeys

获取阿里云平台的 API 授权,这样插件才有权调用邮件推送的功能。这里只需要DirectMail 权限,所以只需要子账户的 accesskeys即可2

进入控制台,鼠标移动至右上角,选择 accesskeys ▼

2231

根据提示选择开始使用子账户 AccessKey ▼
2232

在弹出的窗口填写用户名,点击下一步 ▼
2233

搜索邮件,选择搜索出现的两个权限,点击开始创建 ▼
2234

输入短信验证码之后,记录生成的AccessKey IDAccessKey Secret

安装插件 LoveKKComment

安装方式同常规插件安装。

安装

  1. 通过git clone将插件下载至Typecho插件目录./usr/plugins中,目录名称更改为LoveKKComment
  2. 后台激活插件
  3. 选择发信接口:阿里云推送
  4. 发件邮箱地址和邮件回复地址同 Alicloud DirectMail 中的设置
  5. 填入对应的DM接入区域、Accesskey ID、Accesskey Secret
    2235

三种方式

SMTP。 这种方式通过各种邮件服务商提供的 SMTP 接口发送邮件,优势是不需要设置发信域名,用自有的QQ、163 邮箱直接发信;不足我自己体验下来,评论提交速度会变慢,且有时无法触发发信。

Send Cloud。 邮件推送服务商,类 Alicloud DirectMail 服务。

Alicloud DirectMail。 其在 Typecho 后台的配置更为简单。且阿里云服务稳定, 相应速度快,基本上我评价之后就能收到邮件。在阿里云后台能够看到发信统计,分析等。推荐这种方式。

小声逼逼

插件里面的发信内容能够自定义,模板文件在文件夹./usr/plugins/LoveKKComment/theme中,分别为:

  • approved.html:邮件审核通过通知模板
  • author.html:文章评论通知作者模板
  • reply.html:评论回复通知被回复者模板

在先前测试中,默认模板发送到QQ 邮箱会被认为广告垃圾邮件,建议对模板作一些修改,把类似自动、系统创建等词语替换,保证信件顺利到达。

参考

本文参考了如下文章

  • Typecho评论邮件通知插件 LoveKKComment:小 Z 博客
  • 使用CommentMailPlus插件实现typecho评论邮件通知功能:友人 C

感谢 🎈


  1. 密码找回:在用户登陆界面添加选项 [密码找回],输入邮箱后会将密码找回连接发送至绑定邮箱
  2. 子账户 accesskey:accesskey 能够获取账户下的所有权限,安全起见,服务需要什么权限则授予什么权限,通过子账户来管理
Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

已有 9 条评论
  1. 邮件发送失败,错误代码:Forbidden,错误提示:User not authorized to operate on the specified resource.
    邮件发送返回数据:s:168:"{"RequestId":"31774862-9F93-43D1-B60A-6DF1D6F76CD9","HostId":"dm.aliyuncs.com","Code":"Forbidden","Message":"User not authorized to operate on the specified resource."}";

    看log是这个提示 请问是什么原因导致- -已经安装步骤操作

    1. @刘大喵授权错误。建议从 [插件设置] 先排查,看是否和阿里云推的设置一致;没问题再看看 [阿里云推 accesskey] 的权限。插件没什么问题,我这边还能运行。

      仍有问题可以去作者项目问问:https://github.com/ylqjgm/LoveKKComment

    2. @Cameron已经解决了,最后发现是用户没有 AliyunDirectMailFullAccess和AliyunDirectMailReadOnlyAccess 的权限,谢谢您@(花心)

  2. 我用的CommentToMail + 阿里云

    1. @大大的小蜗牛当时这款插件版本很多,没找到合适的。你可以把插件挂到回复让更多人看到 :)

    2. @Cameronhttps://github.com/eallion/CommentToMail

    3. @大大的小蜗牛感谢

  3. detechn detechn

    这个Alicloud DirectMail 是收费还是免费的?

    1. Cam Cam

      @detechn阿里给了 200 条/天 免费额度,一般来说够用了