这两天在别人博客留下评论之后,有人回复我的话则会自动给我发邮件提醒。这个功能简直太方便了8,于是琢磨琢磨给我的博客中也加上😋
由于官方的邮件通知自1.4版本以来就已经下线,这里使用第三方邮件提醒——Valine-Admin
为了避免出现不必要的问题,这里使用LeanCloud国际版!(国际版还有二级域名,国内版就没有😖,可惜我的留言和评论了[虽然不多🤒])
1. 国际版LeanCloud
首先创建好应用,这些和国内版没啥区别,之前没了解过的小伙伴可以先看我这篇文章——给Hugo个人博客添加Valine评论系统
打开 设置 - 安全中心,服务开关按需打开,将博客主页链接设置到Web安全域名中(带https的!)
2. 环境变量
打开 云引擎 - 设置, 设置环境变量(先设置环境变量,在部署项目就能少部署一次了🤔)
需要设置的变量有这些:
先别急着设置,把页面往下翻翻:
可以看到有一个云引擎域名,红色方框中的内容可以随意设置,然后作为云引擎的地址(比国内版良心太多👍)。
然后设置环境变量,图中除了MAIL_TEMPLATE不是必须设置,其它最好都设置上才不会报错,想要了解更多信息的朋友可以查看github中的官方文档——Valine-Admin。
变量 | 说明 | 示例 |
---|---|---|
ADMIN_URL | 云引擎域名 | 例如我这里的https://shenshilei1022.avosapps.us/ |
MAIL_TEMPLATE | 回复邮件模板 | 模板内容放在下面 |
SENDER_EMAIL | 发件邮箱 | 自己的邮箱😁 |
SENDER_NAME | 发件人 | 邮件标题,怎么取都🆗 |
SITE_NAME | 博客名称 | ShenShilei’s Blog |
SITE_URL | 博客地址 | https://shenshilei1022.gitee.io/ |
SMTP_PASS | SMTP登录密码 | 去邮箱设置找找SMTP就好啦 |
SMTP_SERVICE | 邮箱服务商 | 这里我用的QQ邮箱就填QQ |
SMTP_USER | SMTP登录用户 | 还是自己的邮箱😁 |
提醒邮件使用彩虹模板
则将MAIL_TEMPLATE的值设置为如下html
1 | <div style="border-radius: 10px 10px 10px 10px;font-size:13px; color: #555555;width: 666px;font-family:'Century Gothic','Trebuchet MS','Hiragino Sans GB',微软雅黑,'Microsoft Yahei',Tahoma,Helvetica,Arial,'SimSun',sans-serif;margin:50px auto;border:1px solid #eee;max-width:100%;background: #ffffff repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);"><div style="width:100%;background:#49BDAD;color:#ffffff;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));background-image: -webkit-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;"><p style="font-size:15px;word-break:break-all;padding: 23px 32px;margin:0;background-color: hsla(0,0%,100%,.4);border-radius: 10px 10px 0 0;">您在<a style="text-decoration:none;color: #ffffff;" href="${SITE_URL}"> ${SITE_NAME}</a>上的留言有新回复啦!</p></div><div style="margin:40px auto;width:90%"><p>${PARENT_NICK} 同学,您曾在文章上发表评论:</p><div style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;">${PARENT_COMMENT}</div><p>${NICK} 给您的回复如下:</p><div style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;">${COMMENT}</div><p>您可以点击<a style="text-decoration:none; color:#12addb" href="${POST_URL}#comments">查看回复的完整內容</a>,欢迎再次光临<a style="text-decoration:none; color:#12addb" href="${SITE_URL}"> ${SITE_NAME}</a>。</p><style type="text/css">a:link{text-decoration:none}a:visited{text-decoration:none}a:hover{text-decoration:none}a:active{text-decoration:none}</style></div></div> |
🆗,保存设置~
3. 部署应用
打开 云引擎 - 部署 - 部署项目
选择 Git部署 - 配置Git
填写代码库 https://github.com/DesertsP/Valine-Admin.git 并保存
再点击 部署项目,选择 Git部署,在生产环境中点击部署
此时在博客中留言就会有邮件提醒啦🍾
3. 定时任务
因为用的是免费的嘛,自然有各种各样的限制🤒
LeanCloud的休眠策略有两个:
- 每天必须休眠6个小时
- 30分钟没有外部请求则进行休眠
所以可以设置定时任务,白天8点到24点,间隔25分钟唤醒一下,晚上8个小时让它休眠😎就能满足要求了。
打开 云引擎 - 定时任务 - 创建定时任务
这里是国际版,设置的时间加上八个小时就是北京时间啦。
再设置一个任务,在8点10分统计晚上休眠时的评论,补发邮件。
最近好像LeanCloud有这个问题——因流控原因,通过定时任务唤醒体验版实例失败,建议升级至标准版云引擎实例避免休眠。目前我用这个定时任务还没什么问题,等到发现问题了再使用其它诸如云函数的方法去解决休眠这个问题🤒