前言
原本今天在写文章,然后没事就去博客看了一下。突然发现有人在文章下面评论。是早上评论的但是我晚上才看到。
我的留言系统使用的是Valine
,发现留言并没有提醒,只有回复了才会有提醒。
这不能忍。毕竟好不容易来个朋友竟然没有交流上你说难受不难受😡
然后我就去百度了一下Valine-Admin
Valine-Admin 是一个对 Valine 评论系统的拓展应用,可增强Valine
的邮件通知功能。基于 Leancloud 的云引擎与云函数。可以提供邮件通知站长
和@ 通知
的功能,而且还支持自定义邮件通知模板。
发现这个插件很不错我就研究了一下。下面是整合教程。
使用
首先其他的不错说了,在阅读本篇文章之前你最好已经整合了Valine
留言。
由于我已经整合过了所以前面几个步骤的图片来源自@Valine-Admin
首先登陆账号,找到云引擎在点击设置。
复制仓库地址:https://github.com/zhaojun199...
把git仓库地址房子代码库输入框中。
切换到部署标签页,分支使用 master,点击部署。
接下来输入分支为master
部署完成之后就是设置环境变量
环境变量
点击设置,找到自定义环境变量点击新增变量
-
SITE_NAME
: 网站名称。 -
SITE_URL
: 网站地址, 最后不要加/
。 -
SMTP_USER
: SMTP 服务用户名,一般为邮箱地址。 -
SMTP_PASS
: SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式 -
SMTP_SERVICE
: 邮件服务提供商,支持QQ
、163
、126
、Gmail
、"Yahoo"
、......
,全部支持请参考 : Nodemailer Supported services。 — 如这里没有你使用的邮件提供商,请查看自定义邮件服务器 -
SENDER_NAME
: 寄件人名称。 -
TO_EMAIL
:这个是填收邮件提醒的邮箱地址,若没有这个字段,则将邮件发到SMTP_USER
。 -
TEMPLATE_NAME
:设置提醒邮件的主题,目前内置了两款主题,分别为default
与rainbow
。默认为default
设置好以上变量之后 点击实例
然后重启项目,注意任何变动都要重启项目
然后看一下效果
还不错
自定义后台
点击设置然后点击Web主机域名找到自己的后台地址
然后在Usee表中增加账号, 只需要填写 email
、password
、username
其中邮箱必须设置为你的上面环境变量的邮箱
设置完之后登录就能在你的后台管理评论
解决休眠
免费版的 LeanCloud 容器,是有强制性休眠策略的,不能 24 小时运行:
- 每天必须休眠 6 个小时
- 30 分钟内没有外部请求,则休眠。
- 休眠后如果有新的外部请求实例则马上启动(但激活时此次发送邮件会失败)。
也就是如果服务器休眠了的话用户第一次评论是提醒不了的。
参考了Valine-Admin官网找到了解决办法。
首先在环境变量增加服务器地址,就是你的后台服务器地址
下面是你的服务器地址,可以自定义
同样登录后台
找到定时任务
然后点击创建任务,上面是我创建好的
选择self_wake函数,然后运行时间使用cron表达式
0 0/30 7-23 ? 表示每天6点到11点 每30分钟叫醒服务器一次
这样就完美的解决了服务器休眠的问题
那如果用户不在时间范围内发留言了怎么办?我们也可以创建一个捡漏的定时任务
创建捡漏定时任务
然后运行函数选择resend_mails,同样使用cron表达式
0 0 8 ?
表示每八个小时进行捡漏一次,这样如果有留言遗漏的话就能即使的提醒。
结语
有人会说了不久一个破博客吗?都不知道有没有人看干嘛还要这么麻烦。其实并不麻烦,这只是一个态度而已。
欢迎关注我的公众号,也可在公众号进行留言会及时回复
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。