为博客添加评论邮件提醒功能(踩坑全过程)

在很早之前,我就想过要给博客加一个邮件评论提醒功能,上个月折腾了三天愣是没折腾出什么,这几天学不进去,刚好来折腾这个。

因为懒,需要加载到图床的图片太多,这次不插入图片。

准备工作

  • 注册一个 leancloud 国际版账户(国内的需要备案等一系列复杂的操作)
  • 去GitHub fork项目,开启GitHub Action功能

为hexo博客添加评论valine系统

这一步可参考以下链接,此处不再赘述,包括

  • 注册leancloud
  • 配置hexo博客根目录下的_config.(the name of your theme).yml (这里需要修改的是对应主题的yml文件,不是_config.yml)

为你的Hexo加上评论系统-Valine -- blue_zy

Hexo博客进阶:为Next主题添加Valine评论系统-- 千帆过烬

前两步,csdn,博客园大多数帖子都有教程,剩下的步骤有些难度,需要大量阅读相关帖子

为hexo博客添加valine评论邮件提醒功能

这一步包括

  • 自定义云引擎的变量 (可选择氪还是不氪,不氪的选择体验版)
  • 添加定时任务,定期唤醒和检查补发邮件

Hexo博客Next主题valine评论系统邮件提醒 -- AomanHao

完成这一步并且测试后,我心满意足,开始写博客,一开始还是有收到评论邮件的,过几天更新时发现有新评论却没有邮件提醒,回到leancloud后台一看,我%¥#&*,引擎自动休眠了,再看日志,现实云函数报错,马上去必应一下这个情况,找不到有效解决方案,那就先搁着;过了几天来看,我去,提示我这个信息

"因为流控问题,通过定时任务唤醒体验版实例失败,建议升级至标准版引擎实例避免休眠"

好家伙,这明摆着要我去氪。不过,本着我多年不氪金(白嫖)的习惯,又去必应了下解决方案

解决leancloud流控问题(最难)

有三个常见的唤醒功能

  • cron-job
  • Github+Action
  • Ajax请求唤醒

csdn上大多数是去阿里云等网站申请唤醒功能,不过这些感觉需要花很多大洋的样子,就没去理会,后来发现GitHub+Action这个貌似不错,然后就去必应了下,雀食有很多帖子教GitHub+Action的,不过他们fork的项目已经不能访问了,就是这个: https://github.com/blogimg/WakeLeanCloud

下面这两个帖子的

使用Github Actions模拟评论解决LeanCloud的流控限制 -- Hiram's Blog

Gtihub Action|一行命令解决 LeanCloud 流控问题 -- AimTao's Blog

以上两个博客提到的GitHub建议fork到本地仓库

按照上面两个博客其中之一设置完就差不多设置好了

可能出现的问题

  • 怎么进入leancloud国际版评论后台网站:参照这个博客来设置user变量 解决Leancloud流控问题 -- Uncleacc's Blog
  • 为什么提示云函数报错:是因为没有在云引擎处设置变量ADMIN_URL,这里填leancloud评论后台管理网址
  • 云引擎中的变量SMTP_PASS不是邮箱密码,是邮箱SMTP的授权码
  • GitHub Action那里的SITE应该填评论后台管理网址

写到这里,总算把折腾的全过程写出来了(无用的知识增加了)