热烈祝贺,在本博主的坚持不懈下,终于实现了评论邮件提醒功能。

Valine

【1】先介绍一下Valine,官网

【2】也就是本博客正在使用的评论系统,同时也欢迎各位小伙伴尝试~。

【2】官方也有自带的邮件提醒功能,但是有以下几点不足。

介绍Valine-Admin

【1】所以,我们采用Valine-Admin,因为他基本解决了上面的所有问题。

配置Hexo下的Valine

【2】因为我用的是Hexo的Indigo主题,该主题有自带Valine插件,所以我只需要配置文件即可,路径大概在../Hexo/themes/indigo/config.yml

LeanCloud.cn上使用Valine

【🔴】官网就有具体的步骤,为了方便我着重把需要的步骤抄过来。

获取APP ID 和 APP Key

【1】请先登录注册 LeanCloud, 进入控制台后点击左下角创建应用

【2】应用创建好以后,进入刚刚创建的应用,选择左下角的设置->应用Key,然后就能看到你的APP ID和APP Key了,并将其记下后填入适当的位置:

安全域名

【1】为了你的数据安全,请设置您的安全域名,像我的设置如下:

开始Valine-Admin

【🔴】这部分在官方Github仓库上也有具体步骤,为了大家阅读方便我也给抄过来了:

部署部分

【1】确保你的博客已经出现Valine的评论框,且可正常评论使用的情况下进行以下步骤,若不行请参考 Valine Docs

【2】然后进入 Leancloud 对应的 Valine 应用中。云引擎 -> 设置 填写代码库并保存:https://github.com/DesertsP/Valine-Admin

【3】切换到部署标签页,云引擎 -> 部署,点击Git源码部署

【4】分支或版本号:Master,勾选下载最新依赖,选择生产环境

【5】第一次部署需要花点时间。

自定义环境变量 & 腾讯企业邮箱

【🔴】这里我用的是腾讯企业邮箱,因为可以自定义邮箱域名。你也可以使用普通的QQ邮箱,不过要注意SMTP_HOST里要改成相应的SMTP服务器。(详情参考:QQ邮箱的POP3与SMTP服务器是什么?)

【1】其中有一些必填参数

  • SITE_NAME : 网站名称。
  • SITE_URL : 网站地址, 最后不要加 / 。
  • SMTP_USER : SMTP 服务用户名,一般为邮箱地址。
  • SMTP_PASS : SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式
  • SENDER_NAME : 发件人名称。
  • SENDER_EMAIL :发件邮箱

【2】同时要注意一点,邮箱密码不是你的QQ密码,而是使用邮箱授权码,这一点很重要!!!
(详情参考:什么是QQ邮箱授权码,它又是如何设置?)

【3】当您把邮箱授权码填入自定义环境变量,并确认一遍全部无误后重启实例,就已经实现评论邮件提醒功能啦!!!

(进阶)评论管理后台

【🔴】免费版的 LeanCloud 容器,是有强制性休眠策略的,不能 24 小时运行:

  • 每天必须休眠 6 个小时
  • 30 分钟内没有外部请求,则休眠。
  • 休眠后如果有新的外部请求实例则马上启动(但激活时此次发送邮件会失败)。
  • 分析了一下上方的策略,如果不想付费的话,最佳使用方案就设置定时器,每天 7 - 23 点每 20 分钟访问一次,这样可以保持每天的绝大多数时间邮件服务是正常的。

【1】首先需要先配置下 Web 主机的域名,使用定时器时要用到,云引擎->设置->Web 主机域名

【2】存储->_User->添加行,填写emailpasswordusername,三个字段,用email登陆。(为了安全考虑,此 email 必须为配置中的 SMTP_USER 或 TO_EMAIL,否则不允许登录)

接下来就可以从xxx.leanapp.cn,登录您的评论后台了。

【3】效果图如下。

(必看)定制休眠策略

【🔴】为了顺利白嫖,所以我们选择了两个较佳的休眠策略。

【1】选择self-wake云函数,Cron表达式为0 0/30 6-23 * * ?,表示每天早6点到晚23点每隔30分钟访问云引擎。

【2】选择resend-mails云函数,Cron表达式为0 0 8 * * ?,表示每天早8点检查过去24小时内漏发的通知邮件并补发。

(最后)重启实例

【1】一切都搞定后,请务必重启一次实例。

【2】测试评论一下,然后到云引擎->应用日志查看,以下情况则说明功能已经实现啦~!!!

【3】效果

参考文章

老规矩,列出本文所引用及参考的文章链接。

【1】Valine,一款快速、简洁且高效的无后端评论系统。
【2】DesertsP,Valine-Admin
【3】QQ邮箱,POP3与SMTP服务器地址?
【4】QQ邮箱,什么是授权码,它又是如何设置?
【5】LeanCloud,领先的 BaaS 提供商