简介
此项目是一个对 Valine 评论系统的拓展应用,可增强 Valine
的邮件通知功能。基于 Leancloud 的云引擎与云函数。可以提供邮件 通知站长
和 @ 通知
的功能,而且还支持自定义邮件通知模板。
快速开始
Valine官方提供的邮件提醒功能是基于Leancloud的密码重置邮件提醒
,操作步骤如下:
进入Leancloud
>选择你的评论所存放的应用
>设置
>邮件模板
,按下图设置好用于重置密码
的邮件主题>然后保存:
修改邮件主题:你在 的评论收到了新的评论
修改内容:将下面的代码复制到“内容”中,并将其中的你的网址首页链接
改为你的网址首页链接。
1 | <p>Hi, {{username}}</p> |
点击“保存”按钮
修改主题配置文件搜索valine
(快速定位),将其中的false
改为true
。
1 | valine: |
注意事项
- 发送次数过多,可能会暂时被Leancloud 屏蔽邮件发送功能
- 由于
邮件提醒
功能使用的Leancloud的密码重置邮件提醒
,只能传递昵称
、邮箱
两个属性,所以邮件提醒链接无法直达指定文章页
。请悉知。 - 开启
邮件提醒
会默认开启验证码
选项。 - 该功能目前还在测试阶段,谨慎使用。
- 目前
邮件提醒
正处于测试阶段,仅在子级
对存在邮件地址的父级
发表评论时发送邮件
第三方支持
这里重点讲一下第三方邮件提醒
:Valine-Admin
这也先需要将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 |
注意, LeanCloud 最近更新了定时器校验规则, 需要将 Cron 表达式写为:
0 */20 7-23 * * ?
!!!
更新新版本与更改环境变量均需要重启容器后生效。
重启容器
邮件通知展示
游客 A 评论,站长收到邮件 :
( rainbow
主题)
游客被 @ 收到的邮件 :
rainbow
彩虹主题