DIY Waline评论邮件提醒模板

前言

由于Waline评论平台的邮件提醒默认模板实在太难以使用了,因此根据官方教程进行DIY一下

U1S1,官方文档编写的真的一言难尽。。。

由于博客平台还在更新中,因此本博文所有图像信息使用路过图床进行代理

版本说明

适配Waline版本:2.15.8

使用Vercel进行部署的后端服务

若该博文没有进行更新,则代表后续版本也OK

参考链接

自定义过程

由于Waline 与Valine异曲同工,其次模板是针对于邮件的模板化内容,因此打算将Valine的模板进行魔改一下。

在Vercel上按照需求添加信息:

MAIL_SUBJECT

A评论完后B进行回复评论,A收到的提醒模板(标题部分)

1
{{parent.nick}},您在"{{site.name}}"上的评论收到了回复

MAIL_TEMPLATE

A评论完后B进行回复评论,A收到的提醒模板(正文部分)

1
<div style="border-top:2px solid #12ADDB;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;margin:50px auto;font-size:12px;"><h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;">您在<a style="text-decoration:none;color: #12ADDB;" href="{{site.url}}" target="_blank">{{site.name}}</a>上的评论有了新的回复</h2>{{parent.nick}},你曾发表评论:<div style="padding:0 12px 0 12px;margin-top:18px"><div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">{{parent.comment|safe}}</div><p><strong>{{self.nick}}</strong>回复说:</p><div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">{{self.comment|safe}}</div><p>您可以点击<a style="text-decoration:none; color:#12addb" href="{{self.link}}" target="_blank">查看有关博文</a>,欢迎再次回复交流。<br></p></div><div style="text-align: center;"><a style="text-decoration: none; color: #12addb;" href="{{site.url}}" target="_blank">{{site.name}}</a></div></div>

MAIL_SUBJECT_ADMIN

有新评论时管理员收到的评论模板(标题部分)

1
{{site.name}}上有新评论了

MAIL_TEMPLATE_ADMIN

有新评论时管理员收到的评论模板(正文部分)

1
<div style="border-top:2px solid #12ADDB;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;margin:50px auto;font-size:12px;"><h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;">博主你好,你的<a style="text-decoration:none;color: #12ADDB;" href="{{site.url}}" target="_blank">{{site.name}}</a>上有了新的评论</h2>{{self.nick}}在你的博客上发表评论,评论内容为:<div style="padding:0 12px 0 12px;margin-top:18px"><div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">{{self.comment|safe}}</div><p>您可以点击<a style="text-decoration:none; color:#12addb" href="{{self.link}}" target="_blank">查看评论的博文內容</a>,不要忘记回复。<br></p></div><div style="text-align: center;"><a style="text-decoration: none; color: #12addb;" href="{{site.url}}" target="_blank">{{site.name}}</a></div></div>

实现效果

(通过路过图床展示图片)

博主端收到的评论消息

博主端收到的评论消息

评论者收到的提醒消息:

评论者收到的提醒消息

尾言

可能会出现的环境变量问题

(我没遇到过我不知道)

Vercel 的环境变量大小限制为 4KB ,所以如果您的模板很长,请使用代码配置,参见 issue#106

附加说明

comment内容需要进行safe转义处理

通过观察评论内容时发现Waline博客平台为了防止XSS消息注入采用了字符转义处理,如果不进行干涉,则在评论信息中多了<p>标签,评论消息无法进行渲染。因此有两种路线选择:

  1. 放弃美观度,更加安全保守:则将comment后面的|safe删除,便会进行转义处理,效果类似于:

    pAHVAH0.png

  2. 拥抱美观,信赖评论者还有Waline平台有更多的防护手段:无需进行任何更改,直接CV,效果即是展示效果。