本文最后更新于:1 年前

原文链接:https://segmentfault.com/a/1190000021474516?utm_source=tag-newest

前言

原本今天在写文章,然后没事就去博客看了一下。突然发现有人在文章下面评论。是早上评论的但是我晚上才看到。

我的留言系统使用的是Valine,发现留言并没有提醒,只有回复了才会有提醒。

这不能忍。毕竟好不容易来个朋友竟然没有交流上你说难受不难受😡

然后我就去百度了一下Valine-Admin

Valine-Admin 是一个对 Valine 评论系统的拓展应用,可增强 Valine 的邮件通知功能。基于 Leancloud 的云引擎与云函数。可以提供邮件 通知站长@ 通知 的功能,而且还支持自定义邮件通知模板。

发现这个插件很不错我就研究了一下。下面是整合教程。

使用

首先其他的不错说了,在阅读本篇文章之前你最好已经整合了Valine留言。

由于我已经整合过了所以前面几个步骤的图片来源自@Valine-Admin

首先登陆账号,找到云引擎在点击设置。

复制仓库地址:https://github.com/zhaojun199…

img

把git仓库地址房子代码库输入框中。

切换到部署标签页,分支使用 master,点击部署。

img

接下来输入分支为master

img

部署完成之后就是设置环境变量

环境变量

点击设置,找到自定义环境变量点击新增变量

img

  • SITE_NAME : 网站名称。
  • SITE_URL : 网站地址, 最后不要加 /
  • SMTP_USER : SMTP 服务用户名,一般为邮箱地址。
  • SMTP_PASS : SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式
  • SMTP_SERVICE : 邮件服务提供商,支持 QQ163126Gmail"Yahoo"...... ,全部支持请参考 : Nodemailer Supported services。 — 如这里没有你使用的邮件提供商,请查看自定义邮件服务器
  • SENDER_NAME : 寄件人名称。
  • TO_EMAIL:这个是填收邮件提醒的邮箱地址,若没有这个字段,则将邮件发到SMTP_USER
  • TEMPLATE_NAME:设置提醒邮件的主题,目前内置了两款主题,分别为 defaultrainbow。默认为 default

设置好以上变量之后 点击实例

img

然后重启项目,注意任何变动都要重启项目

然后看一下效果

img

还不错

自定义后台

点击设置然后点击Web主机域名找到自己的后台地址

img

然后在存储-数据-_User表中增加账号, 只需要填写 emailpasswordusername 其中邮箱必须设置为你的上面环境变量的邮箱

设置完之后登录就能在你的后台管理评论

解决休眠

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

  • 每天必须休眠 6 个小时
  • 30 分钟内没有外部请求,则休眠。
  • 休眠后如果有新的外部请求实例则马上启动(但激活时此次发送邮件会失败)。

也就是如果服务器休眠了的话用户第一次评论是提醒不了的。

参考了Valine-Admin官网找到了解决办法。

首先在环境变量ADMIN_URL增加服务器地址,就是你的后台服务器地址

img

下面是你的服务器地址,可以自定义

同样登录后台

找到定时任务

img

然后点击创建任务,上面是我创建好的

img

选择self_wake函数,然后运行时间使用cron表达式

0 0/30 7-23 ? 表示每天6点到11点 每30分钟叫醒服务器一次

这样就完美的解决了服务器休眠的问题

那如果用户不在时间范围内发留言了怎么办?我们也可以创建一个捡漏的定时任务

img

创建捡漏定时任务

然后运行函数选择resend_mails,同样使用cron表达式

0 0 8 ?

表示每八个小时进行捡漏一次,这样如果有留言遗漏的话就能即使的提醒。

crontab 定时器代码:**

*/20 7-23 * * * curl https://你配置的域名前缀.leanapp.cn

结语

有人会说了不久一个破博客吗?都不知道有没有人看干嘛还要这么麻烦。其实并不麻烦,这只是一个态度而已。

欢迎关注我的公众号,也可在公众号进行留言会及时回复

img


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

动态时钟 上一篇
一些关于halo博客的资源 下一篇

 目录