前言
今天无意间看到很久之前写的一篇文章有新的评论,而评论时间呢也是10天以前的。这就有点伤了啊,别人兴致冲冲地提了疑惑,而我却10天后才看到。经过这一茬,意识到评论提醒功能的重要性。由于我使用的是hexo+NexT主题+Valine评论系统,自然而然地就去Valine官网看了看,没想到还真有提醒的功能「邮件提醒」。
这里就给大家讲讲Valine中如何配置邮件提醒功能。
Valine邮件提醒
Valine评论功能是基于Leancloud的,Valine评论功能还不能跑起来的可以看看我之前写的文章《Hexo使用NexT主题及配置》,其中就有详细的使用说明,这里就不展开了。
Valine官方提供的邮件提醒功能是基于Leancloud的密码重置邮件提醒
,操作步骤如下:
进入Leancloud
>选择你的评论所存放的应用
>设置
>邮件模板
,按下图设置好用于重置密码
的邮件主题>然后保存:
修改邮件主题:
你在 的评论收到了新的评论
修改内容:将下面的代码复制到“内容”中,并将其中的
你的网址首页链接
改为你的网址首页链接。1
2
3
4
5<p>Hi, {{username}}</p>
<p>
你在 {{appname}} 的评论收到了新的回复,请点击查看:
</p>
<p><a href="你的网址首页链接" style="display: inline-block; padding: 10px 20px; border-radius: 4px; background-color: #3090e4; color: #fff; text-decoration: none;">马上查看</a></p>点击“保存”按钮
修改NexT主题配置文件,搜索
valine
(快速定位),将其中的notify
改为true
。1
2
3
4
5
6
7
8
9
10
11
12
13# Valine.
# You can get your appid and appkey from https://leancloud.cn
# more info please open https://valine.js.org
valine:
enable: true
appid: gaKW5SWAvf7NBolU9wFbxN8O-gzGxoHsz
appkey: susRJyHS8Fq1SyKXg0r9ad65
notify: true # mail notifier , https://github.com/xCss/Valine/wiki
verify: false # Verification code
placeholder: 您的评论可以一针见血 (*^ω^*)~~ # comment box placeholder
avatar: mm # gravatar style
guest_info: nick,mail,link # custom comment header
pageSize: 10 # pagination size
注意事项
- 发送次数过多,可能会暂时被Leancloud 屏蔽邮件发送功能
- 由于
邮件提醒
功能使用的Leancloud的密码重置邮件提醒
,只能传递昵称
、邮箱
两个属性,所以邮件提醒链接无法直达指定文章页
。请悉知。 - 开启
邮件提醒
会默认开启验证码
选项。 该功能目前还在测试阶段,谨慎使用。
目前
邮件提醒
正处于测试阶段,仅在子级
对存在邮件地址的父级
发表评论时发送邮件
第三方支持
这里重点讲一下第三方邮件提醒
:Valine-Admin (by @zhaojun1998)
这也先需要将Valine的评论功能成功跑起来。
然后进入 Leancloud 对应的 Valine 应用中。
- 点击
云引擎 -> 设置
填写代码库并保存:https://github.com/zhaojun1998/Valine-Admin
切换到部署标签页,分支使用 master,点击部署即可:
设置云引擎的环境变量
必选参数
SITE_NAME
: 网站名称。SITE_URL
: 网站地址, 最后不要加/
。SMTP_USER
: SMTP 服务用户名,一般为邮箱地址。SMTP_PASS
: SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式SMTP_SERVICE
: 邮件服务提供商,支持QQ
、163
、126
、Gmail
、"Yahoo"
、......
,全部支持请参考 : Nodemailer Supported services。 — 如这里没有你使用的邮件提供商,请查看自定义邮件服务器SENDER_NAME
: 寄件人名称。
由于我使用的是我自己的企业邮箱,所以这边的
SMTP_SERVICE
就不适用了,需要用这三个参数替换:SMTP_HOST
、SMTP_PORT
、SMTP_SECURE
。详细说明如下:
SMTP_HOST
: 邮件服务提供商 SMTP 地址,如 qq :smtp.qq.com
,此项需要自行查询或询问其服务商。SMTP_PORT
: 邮件服务提供商 SMTP 端口, 此项需要自行查询或询问其服务商。SMTP_SECURE
: 是否启用加密, 默认为true
,一般不需要设置,如有特殊请自行配置。 此项需要自行查询或询问其服务商。
如果也同我一样使用阿里云企业邮箱,
SMTP_HOST
、SMTP_PORT
、SMTP_SECURE
可以照我的写。可以看到上图中,我的自定义环境变量还多了2个,分别是:
TO_EMAIL
:这个是填收邮件提醒的邮箱地址,若没有这个字段,则将邮件发到SMTP_USER
。TEMPLATE_NAME
:设置提醒邮件的主题,目前内置了两款主题,分别为default
与rainbow
。默认为default
。
Web 评论管理
此项目还为 Valine 提供了更方便的评论管理功能,可以在 web 端对评论进行查看与删除操作。配置方式如下。
后台登录需要账号密码,需要在这里设置,只需要填写
email
、password
、username
,这三个字段即可, 使用email
作为账号登陆即可。(为了安全考虑,此email
必须为配置中的SMTP_USER
或TO_EMAIL
, 否则不允许登录)Web 后台目前仅有
查看
与删除
功能LeanCloud 休眠策略
免费版的 LeanCloud 容器,是有强制性休眠策略的,不能 24 小时运行:
- 每天必须休眠 6 个小时
- 30 分钟内没有外部请求,则休眠。
- 休眠后如果有新的外部请求实例则马上启动(但激活时此次发送邮件会失败)。
分析了一下上方的策略,如果不想付费的话,最佳使用方案就设置定时器,每天 7 - 23 点每 20 分钟访问一次,这样可以保持每天的绝大多数时间邮件服务是正常的。
附
Linux crontab
定时器代码:1
*/20 7-23 * * * curl https://你配置的域名前缀.leanapp.cn
注 : 此
crontab
不是LeanCloud
后台的定时任务,如果你没有Linux
服务器来配置此定时器,那么可以在此 issues 中回复zhaojun1998,让他帮你加上。
注
更新新版本与更改环境变量均需要重启容器后生效。