对邮件评论提醒进行了两处改进:
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&名字&邮箱&站点”即可,站点可不加,注意内容进行编码转义
欢迎测试,并提供反馈。
感觉好不错咯~~我还没试过我的回复邮件通知是否还生效~~
收到你的邮件提醒了。
用自己的网站服务器发邮件的话,岂不很容易泄漏服务器的真实IP ?
这是用SendCloud的API发送的邮件,不是本服务器。
羡慕会敲代码的菊苣
我还专门查了下最后俩字啥意思,我算不上……
通过邮件内附的链接访问本站会自动填写评论者信息
这点很不错,我才刚刚把邮件提醒弄好,以后再折腾折腾。
嗯,可以方便一点。
感谢分享 默认貌似就可以啊
看来你没读全文,只是为了留评论。
因为看不懂
那就没必要评论了,我这小博客给你带不去什么流量的。
加和友情互链吧😄
已加……
Ok
前后我到办公室加你
哈哈
已加
wineshe.com/blog/?page_id=492
你的重定向有问题,非www域名的url全部跳转到www域名的首页,不能保留路径。
主要是你的网站不让发链接,所以就这样了
我明白,但是你的重定向这样搞不好啊。
网站新版上线,欢迎访问,友链在这两天上线。
去看了,新版比以前好看了~
typecho的插件没能用成功,作为独立博客,确实需要邮件提醒这个功能,正愁怎么解决呢
typecho没用过,不过这个功能应该有很多现成的方案吧,你再仔细看看哪里有问题。
晚上还有课,等有时间了好好研究研究。哎,刚刚你在我博客的两条留言我都有回复,但没有邮件提醒,你都不知道哈。只能在这手动艾特你咯。看来还是要尽快解决这个问题。
友链已加。不成功是不是服务器封掉了邮件端口或者发邮件的函数未启用?
你这么一说我想起来了,服务器我好像没开25端口
以前用共享虚机遇到过这种问题,不过我现在用sendcloud的API发送,不需要额外端口了。
想学习一下,怎么用SendCloud让自己的Blog有评论邮件回复功能?
很简单,去网站注册,看看示例即可。sendcloud.sohu.com/doc/email/code/