Valine评论系统通知邮件 @ Wings            分类 技术
发布于 星期二, 七月 13 日, 2021 年
更新于 星期二, 七月 20 日, 2021 年

封面绝对不是在搞笑, 不是, 我说不是就不是!
麻了各种错误搞了一整天. 终于是搞好了, 暴风哭泣. 记一下踩过的坑.

数据导出导入问题

记录一个无关问题

首先有一个很重要的问题, 当时注册 LeanCloud 的时候没太放在心上, 就是注册的中国区账号, 虽然服务器在中国, 但是由于一些原因不如国际服务器好用. 所以第一步是把数据搬迁一下.

我的东西比较少, 就是一点点少的可怜的 valine 评论, 直接导出评论类:

导出json数据

导出以后可以试试导入, 然后你就会发现出大问题: 有一个叫 InsertAt 的数据在原表中的类型是 Date, 但导出的 json 文件里他是 "InsertAt": "xxxxx" 这样的. 然后再导入进取, 这一列数据类型就会变成 String! 什么鬼啊! 后来翻看文档, 发现 Date 数据在导出后应该是这样的(官方示例):

"publishedAt": {
  "__type": "Date",
  "iso": "2015-11-27T19:05:21.377Z"
},

照着这个样子批量修改 InsertAt 就可以了. 也不知道是不是我导出的姿势不对.

导出和导入都会给你的邮箱发邮件提醒. 如果导入的时候一直转圈圈, 那么看看邮件, 是不是导入失败, 失败的原因是什么. (屑网站连失败提醒都没有!) 我这里遇到的问题是 json 格式问题(因为我用 sublime 编辑了这个文件, 我的 sublime 有一个自动标点替换, 把中文的引号换乘了英文, 然后emmm).

Gmail开启SMTP

不多说, 直接挂官方文档

注意几个点

  1. 是开启 IMTP,
  2. 允许其他软件登录
  3. 最后是记住 SMTP 的用户密码是 google 账号, SMTP 主机名是 smtp.gmail.com, 端口是 465

部署Valine-Admin云引擎

仓库地址

部署

下面这里输入 Valine-Admin 的仓库地址

    https://github.com/zhaojun1998/Valine-Admin

当然可以把这个 fork 一下自己 DIY 然后用自己的地址, 以后再说叭.

部署

然后他会开始启动, 途中会输出启动日志, 成功后如下所示:

部署成功

然后就是设置变量, 对着README设置.

本人用的是 Gmail, 天杀的 SMTP 预设服务里的 Gmail 不知道是不是设置错了, 害得我搞了一整天, 也不知道哪里出了问题, 官网 issue 也没人提这个问题, 果然是 valine 被抛弃了啊. 所以需要手动设置 SMTP: 不要填 SMTP_SERVICE, 根据 Gmail官方文档 填上 SMTP_HOSTsmtp.gmail.comSMTP_HOST465.

如下:

设置变量

LeanCloud休眠策略对策

大概是这样?

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

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

分析了一下上方的策略, 如果不想付费的话, 最佳使用方案就设置定时器, 每天 7 - 23 点每 20 分钟访问一次, 这样可以保持每天的绝大多数时间邮件服务是正常的.

但是, LeanCloud 本身有一个计划任务, 用这玩意搞搞就可以做到如上所示: 白天工作, 晚上休眠 6h.

步骤如下:

设置Web主机域名

设置Web主机域名

如果你喜欢可以用 CNAME 解析到自己的域名上, 反正我是解析了一下

然后创建一个用户可以用来登录后台进行管理

创建用户

注意 email 必填, 为 STMP_USER 设置的值, 否则无法登录后台. 官网说登录的时候用户名写这个, 而不是上面设置的用户名, 为了方便我写的都一样, 就没这破事了(还嫌事不够多是叭)

设置管理地址变量

和上面设置全局变量类似, 添加一个 ADMIN_URL, 为之前设置的域名.

然后就可以访问这个域名登录管理系统了.

创建计划任务

创建计划任务

名称随意, 任务选自唤醒(self-wake), Cron 表达式我这里写的是 0 */20 0-17 * * ?, 即 0:00-17:59, 每 20min 进行一次任务. (服务器是UTC+0的)


没了

以后要是搞邮件模板什么的再来写叭, 先到这里, 反正是成功了! 有人评论会发邮件提醒我, 有人被回复还会同时发邮件提醒他(如果设置了邮箱的话).

留下昵称和邮箱, 可在第一时间获悉回复通知哦~

2021 FLAG

  • 找个妹子
  • 进计科
  • XCPC拿块金牌
  • 补全算法知识, 整全板子
  • 学会Web开发相关知识
  • 在服务器上搭建电子书库
  • 写个游戏并上线
  • 能弹一首曲子
  • 写首完整的曲子
  • 练习悠悠球
  • 三阶速拧20s

个人简介

我叫 Wings, 来自江西上饶, 目前人在西安, 是西电的一名学生.

常以 WingsWingsZengWingsWings的ID在各大小网站上游走, 一般来说, Wings不是我 😔, WingsZeng 一定是我 😊.

热爱算法, 喜欢钻研各种计算机技术.

业余爱好广泛, 只要不是文化课基本上都感兴趣😏.

开发/项目经历

  1. Android游戏 小墨滴的复仇 (弃坑)
  2. Android游戏 Circle Run (弃坑)
  3. Windows游戏 Snague (可能弃坑了吧)
  4. Python后端 Fathy' (可能弃坑了吧)

to be continued

教育经历

时间 学历 学校
2008-2014 小学 上饶市第十二小学
2014-2017 初中 上饶市第四中学
2017-2020 高中 上饶市第一中学
2020-2024 本科 西安电子科技大学
to be continued

比赛/竞赛经历

太久远太小的记不到了…

  1. 2017 国学竞赛初赛江西 没有分数或排名 二乙
  2. 2018 NOIP提高 258 省二
  3. 2019 CSP-S江西专场 145 省二
  4. 2019 数学竞赛初赛 70 没排名 (复赛打铁qaq)
  5. 2020 Gitee|Python贪吃蛇魔改大赛 可能是第四? 二等奖
  6. 2020 西电ACM训练基地熊猫杯 第四 银牌
  7. 2020 西安三校微软学生俱乐部Hackathon 和二等奖最后一名差0.5分 三等奖
  8. 2020 西电星火杯 三等奖
  9. 2020 西电ACM新生赛 第九 金牌
  10. 2020 ICPC 亚洲区域赛 济南站 132名 铜牌
  11. 2020-2021 第二届全国大学生算法设计与编程挑战赛(冬季赛) 924名 铜牌 (别骂了别骂了)
  12. 2020 ICPC 亚洲区域赛 昆明站 打星
  13. 2020 ICPC Asia-East Continent Final 签完到溜 打铁
  14. 西电"智能星"第一届自动驾驶小车比赛 第五 优胜奖|极速奖 本来可以冠军的别骂了别骂了

to be continued

爱好

技术

  • 算法
  • 独立游戏开发

游戏

  • Minecraft
  • Black Survival
  • I Wanna
  • Celeste
  • Life is Strange
  • Need for speed

运动

  • 篮球
  • 桌球
  • 乒乓球
  • 羽毛球
  • 慢跑

音乐

  • 吉他
  • 词曲
  • 流行

玩具

  • 魔方
    • 三阶速拧
    • 三阶盲拧
    • 高阶
  • yoyo球

追星

  • VAE
  • Benedict Cumberbatch