对邮件评论提醒进行了两处改进:
1. 设置邮件摘要内容为回复内容
2. 通过邮件内附的链接访问本站会自动填写评论者信息
目前还没发现其他人考虑过这两个问题。
首先,目前在各种邮箱列表视图下,都可以显示发件人、主题、摘要,摘要就是邮件内容的预览,但是我们看到的往往是邮件的前几句话,而前几句话通常是客套的、无实际信息的,比如“你在xxx的评论有了回复”,无论你收到多少个不同的提醒,邮件摘要永远只显示这句话,那还有什么意义?
所以,我设置了邮件摘要为评论回复内容,这样当你收到提醒时,主题里可以看到谁回复的你,摘要直接就是他回复的内容,岂不方便?
我是使用了sendcloud的contentSummary字段添加的摘要内容,你也可以在邮件内容的顶部添加摘要内容,并设置css为不可见。
然后,如果你是个新读者,用电脑在我的博客填写了评论,然后你在手机上收到了我回复你的提醒邮件,你想再次回复我,就要在手机上重新填写一遍你的名字、邮箱、站点,虽然下次就会记住这些信息了,是不是依然很麻烦?
现在,你只要点击邮件里面的“查看详情”链接,你的信息就会自动被填写。比如 “点击这个链接” 就会自动填写名字为name,邮箱为mail@qifu.me,站点为https://qifu.me。
这里用到了hash(也就是url后面的#)传递一些参数,js读取后自动填写,不用“?”的原因是因为浏览器向服务器请求url时,不会携带“#”及其后面的内容,服务器端不会因为收到了额外的参数而产生多余的计算消耗资源,也不会影响静态缓存。
代码很简单(更新于2017-03-22,之前用的startsWith在IE下不兼容):
var cmt_hash=window.location.hash;
if(cmt_hash.slice(0,18)=="#comment-autofill&" && cmt_hash.length>18){
cmt_array=cmt_hash.split("&");
if(cmt_array[1]){设置名字为decodeURIComponent(cmt_array[1])的代码}
if(cmt_array[2]){设置邮箱为decodeURIComponent(cmt_array[2])的代码}
if(cmt_array[3]){设置站点为decodeURIComponent(cmt_array[3])的代码}
window.location.hash='#comments';
//此行可选,为空则自动填充以后删除url后面的#(无刷新),设为“#comments”则自动跳转至评论区
}
//然后在需要的url后面添加“#comment-autofill&名字&邮箱&站点”即可,站点可不加,注意内容进行编码转义
欢迎测试,并提供反馈。
专业!这个我可以借鉴看看。
嗯,你可以看看邮件了……
我看到了,很不错呢
看一下你的回复邮件
收到了吧,你可以试试这俩功能是否正常……
基本上都是通过 js 实现的,这个确实给评论者带来很多方便,不然一遍遍输很痛苦!
是的,我喜欢用js实现一些小功能,这样很方便,且对服务器没什么影响。
这个思路真的很牛,特别是点击邮件后自动填写相关信息,在移动端特别有用,PC端部分博客只要评论过,一般都默认已填写好,除非清除了缓存之类的。
移动端也可以记住,但可以方便第一次打开、或者清除了cookie的用户。
我想看看效果.从来没注意过邮件的摘要,我应该是留空了.
大部分人都是看了主题就点进去了,很少有人在意摘要,没人在意的原因就是现在摘要显示的内容无价值。
啥叫邮件的摘要?看看!
可能有些邮箱需要设置才会显示吧,qq、outlook、gmail都是可以的。
很有想法嘛,赞一个!
哈哈,见笑啦……
话说,我最近也有要上个邮件评论提醒功能的打算了
那就加呗,还是比较方便的。
第一点我也想过,懒得弄……
第二点不错。
试试。
握个手,难得有人和我想到一块去了~
非常不错的做法,一会我也折腾上
收到没?sendcloud好像有时候会漏发邮件……