Typecho 通过 Alicloud 和插件 LoveKKComment 实现评论邮件通知
Typecho 通过 Alicloud 和插件 LoveKKComment 实现评论邮件通知
最开始选择 Typecho 就是看中了它轻巧,简单,非常适合作为个人记录的博客。使用过程中有了很多新需求,都在社区找到了对应的插件实现。
前段时间发现了一个新的需求:读者在博文下面留了言,博主回应后却没有通知读者。这样没有闭环的体验很不好,要是读者能够实时收到作者回复提醒(邮件通知是很好的实现方式),就能促进读者和博主的交流。
社区里大部分参考都是使用 ==CommentToMail== 这款插件,以及各种在此插件基础上更新的插件,但是距离上次插件更新时间还是太过久远,我尝试了很多次,即使后台模拟发信能够成功,评论后仍然不能收到信件。
这里推荐一款新的插件 ==LoveKKComment==,插件的接口更加丰富:SMTP、SendCloud 服务、Alicloud DirectMail,且附带博客用户密码找回功能,至今仍在维护。谢谢
本文使用 Alicloud DirectMail 的 API 接口实现邮件推送。三种方式的选择见后文。
实现环境
- 操作系统:CentOS 7.4
- 技术基础
- 默认已有私有服务器,拥有私有域名,安装了博客 Typecho 且有 Linux 基础
- 阿里云邮件推送服务(Alicloud DirectMail):官方帮助文档
- LoveKKComment:项目地址 - github
开通 Alicloud DirectMail 服务
阿里云推送的作用是帮你把插件生成的邮件内容推送至评论时留下的邮箱中。通过阿里云可以把你喜欢的域名(一般是你博客域名)作为发信域名,类似于 ==Cam@gmail.com== 中的 ==gmail.com== 部分,你还能自由设置前缀,生成发信地址。本博设置了 ==admin@mail.hipyt.cn== 作为发信地址。是的,你现在评价后,就能收到这个地址发来的邮件,试一下?
配置过程需要配置发信域名,并且验证;配置发信地址;并且取得阿里云平台的授权。
发信域名
请移步阿里云教程:新建发信域名
教程很详细,特别注意两点:
- 二级域名:建议使用二级域名,如 mail.hipyt.cn,避免对顶级域名 hipyt.cn 产生影响
验证时间:DNS 配置后的生效时间是 10 min,需要等待生效之后发信域名的验证才能通过
发信地址
请移步阿里云教程:新建发信地址
特别注意一点:
发信类型选择==触发邮件==
获取授权 —— accesskeys
获取阿里云平台的 API 授权,这样插件才有权调用邮件推送的功能。这里只需要 ==DirectMail 权限==,所以只需要子账户的 ==accesskeys== 即可。
进入控制台,鼠标移动至右上角,选择 accesskeys ▼
根据提示选择开始使用子账户 AccessKey ▼
在弹出的窗口填写新的用户名,点击确认 ▼
确认后进行短信的验证进行下一步▼
用户中查看刚刚建好的子账户▼
搜索邮件,选择搜索出现的两个权限,点击确定,完成 ▼
权限配置好之后,点击用户然后生成的AccessKey ID 和 AccessKey Secret ▼
记录好AccessKey ID 和 AccessKey Secret
安装插件 LoveKKComment
安装方式同常规插件安装。
安装
- 通过 ==git clone== 将插件下载至 ==Typecho== 插件目录==./usr/plugins== 中,目录名称更改为 ==LoveKKComment==
- 后台激活插件
- 选择发信接口:==阿里云推送==
- 发件邮箱地址和邮件回复地址同 Alicloud DirectMail 中的设置
填入对应的 ==DM接入区域、Accesskey ID、Accesskey Secret== ▼
三种方式
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 博客
谢谢
特别提醒
- 密码找回:在用户登陆界面添加选项 [密码找回],输入邮箱后会将密码找回连接发送至绑定邮箱 ↩
- 子账户 accesskey:accesskey 能够获取账户下的所有权限,安全起见,服务需要什么权限则授予什么权限,通过子账户来管理 ↩