zl程序教程

您现在的位置是:首页 >  APP

当前栏目

Fluid -30- Waline 同时开启邮件和其他评论通知

2023-03-07 09:47:13 时间

Waline 具有多种通知功能,但在设计上邮件通知与其他通知不同时生效,本文记录同时开启邮件和其他评论通知的方法。

背景

  • 如果我们已经配置好 Waline 的邮件通知,也配置了 Waline 的微信通知,那么在有新评论时我们只能收到微信的 Server 酱 通知而没有邮件通知。

问题原因

  • 导致邮件通知不能与其他通知同时生效的原因在于 notify.js 中的代码逻辑
  • 其中写死了如果有其他任何一种通知存在,那么就不发送邮件通知

修改方法

  • 找到 waline-service/node_modules/@waline/vercel/src/service/notify.js 文件
  • 找到第 425 行附近的代码:
if (
  [wechat, qq, telegram, qywxAmWechat, pushplus, discord].every(
    think.isEmpty
  ) &&
  !isReplyAuthor
) {
  mailList.push({ to: AUTHOR, title, content });
}

其中 [wechat, qq, telegram, qywxAmWechat, pushplus, discord].every(think.isEmpty) 的意思就是前面这么多种通知,只要有任何一个不是空的结果就是 False

那么比如我想要同时开启微信通知和邮件通知,那我在这个列表里将微信通知删掉不去检查其是否为空就可以了

删去 wechat

if (
  [qq, telegram, qywxAmWechat, pushplus, discord].every(
    think.isEmpty
  ) &&
  !isReplyAuthor
) {
  mailList.push({ to: AUTHOR, title, content });
}

之后重启 waline,有新评论就可以同时收到邮件和微信通知了,其他情况以此类推。

参考资料