我的博客采用的是CommentToMail插件用来发送评论邮件通知的,自从使用了微信评论通知之后,这个插件好像就失效了,我并不知道是不是因为这个插件的原因导致的这个问题,但是确实是好几天都发送失败,后来通过折腾发现并不是微信通知的原因,最后通过更换邮件系统解决问题。

发现的问题

自从本月26号开始,邮件提醒就已经失效了,而我居然昨天才发现,这几天的评论只有微信通知,况且我也没有打开邮件回复通知自己。

解决过程

最开始我以为是微信插件的原因,我就先把他给禁用掉了,然后测试发现还是无法使用,提示smtp各种错误,上网找了很多的解决办法,最后通过更换邮箱系统解决了这个问题。

报错的信息

  • The following From address failed: master@kaygb.top : MAIL FROM command failed,”MAIL FROM” is non-local account
    ,501,SMTP server error: MAIL FROM command failed Detail: “MAIL FROM” is non-local account
    SMTP code: 501SMTP server error: MAIL FROM command failed Detail: “MAIL FROM” is non-local account
    SMTP code: 501
  • Mailer Error: SMTP Error: data not accepted.
  • SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

关于第二条,其实是因为smtp密码输入错位的问题。

更换smtp邮箱

于是我换掉了我的企业邮箱,注册了一个网易yeah邮箱并打开了smtp服务

然后我在网上找到了一个修改版的插件,尝试之后是可以发送邮件的,但是只能收到评论通知,却并没有发送回复邮件通知。这是我以为是插件的问题,然后我又换回之前的插件,发现还是有点毛病,这个时候我就觉得是邮件系统的问题了。

更换阿里邮件推送服务

最终,我使用了阿里的邮件推送服务解决了这个问题

阿里云邮件推送服务每天有200封免费的邮件,足够我的小站使用的了

开通邮件服务

打开邮件推送控制台https://dm.console.aliyun.com

配置发信域名

在发信域名这里选择新建域名,输入未被解析过的二级域名

新建域名.png

点击配置

域名配置.png

然后根据要求在DNS解析控制台进行四条解析

域名配置1.png

域名解析.png

域名解析1.png

解析完成之后在发信域名点击验证左边显示验证通过即为成功

发信域名验证.png

配置发信地址

这个发信地址也就是用来SMTP发信的邮箱账号,所以可以按照自己的喜好设置。

侧边选择发信地址,然后点击新建发信地址

新建发信地址.png

发信地址配置.png

关于发信类型,我填的是触发邮件,有人说触发邮件不太稳定,也可以选择批量邮件,这个大家自行斟酌

然后需要到填入的回信地址邮箱验证一下

回信地址验证.png

点击验证会跳转到浏览器,登录阿里云账号即可验证成功。

然后配置一下SMTP的密码

smtp密码.png

到这里邮箱就差不多设置完成了。接下来是站点的配置

插件配置

插件配置.png

  • 发信方式选择smtp

  • smtp地址和企业邮箱不同,为:smtpdm.aliyun.com

  • 端口选择ssl加密端口465

  • SMTP用户是刚才设设置的发信地址

  • 密码为设置的SMTP密码

  • 勾选服务器需要验证和ssl加密(一般25端口都是被封掉的,所以我推荐465端口)

到这里差不多配置完成了,可以测试一下是否可以成功发送

邮件发送测试.png

美化评论者邮件模板

评论者的视觉体验是很重要的,于是我只修改了guest.html的内容,代码是借鉴了网上的内容进行的修改,不过我忘记是在哪里找到的了,如果原作者看到可以在评论区给我留言,我会注明原作者。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<base target="_blank" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="https://kaygb.top/static/style.css">
<meta charset="utf-8">
<style id="cloudAttachStyle" type="text/css">
#divNeteaseBigAttach, #divNeteaseBigAttach_bak{display:none;}
</style>
<style>
::-webkit-scrollbar{ display: none; }
.container{
max-width:500px;margin:20px auto;background-color:#eee;box-shadow:2px 2px 5px #888888;font-family:-apple-system,BlinkMacSystemFont,&quot;
}
.mail-box{
width: 100%;
}
.mail-header{
background:url('###这里是头图的地址,请修改###') center center no-repeat;background-size:100% auto;width:100%;height:220px;box-sizing:border-box;overflow-y:hidden;
}
.mail-sitetitle{
width:100%;background:#bd57a7;color:#ffffff;height: 66px;
}
.mail-sitetitle p{
font-size:15px;word-break:break-all;padding: 23px 32px;margin:0;
}
.mail-sitetitle p a{
text-decoration:none;color: #ffffff;
}
.mail-p3{
border-radius:3px;margin:0;margin-bottom:10px;padding:15px 10px;
}
.mail-p3 strong{
display:inline-block;line-height:20px;background-color:#ec6149;color:#fff;border-radius:4px;padding:5px 10px;height:20px;
}
</style>
<div class="container">
<div class="mail-box">
<div class="mail-header">
</div>
<div class="mail-sitetitle">
<p >您在<a href="https://kaygb.top/"> {siteTitle} </a>上的评论有回复啦!</p>
</div>
<p class="mail-p3">
<strong>{author_p}</strong>&nbsp;您在&nbsp;<strong><a href="{permalink}" style="text-decoration:underline;color:inherit;">{title}</a></strong>&nbsp;的评论:
</p>
<div style="margin:40px auto;width:95%">

<p style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;">{text_p}</p>

<p class="mail-p3" style="border-radius:3px;margin:0;margin-bottom:10px;padding:15px 10px;">
<strong style="display:inline-block;line-height:20px;background-color:#00a7e0;color:#fff;border-radius:4px;padding:5px 10px;height:20px;">{author}</strong>&nbsp;&nbsp;<strong><a href="{permalink}" style="text-decoration:underline;color:inherit;">{title}</a></strong>&nbsp;回复你:
</p>
<p style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;">{text}</p>

<p class="footer" style="border-top: 1px solid #DDDDDD; padding-top: 6px; margin-top: 15px; color: #838383; text-align: center;">你可以点击此链接
<a target="_blank" href="{permalink}">查看完整內容</a> | 欢迎再次来访
<a href="https://kaygb.top/">KAYGB</a>
</p>
<p class="footer" style="padding-top: 6px; margin-top: 15px; color: #838383; text-align: center;">
本邮件为自动发送,请勿直接回复,您可以<a href="https://kaygb.top/msg.html">给我留言</a>
</p>
</div>
<p class="mail-footer" style="border-radius:3px;margin:0;padding:15px 20px;text-align:right;">
{siteTitle} 献上诚挚的问候
</p>
<div style="color:#8c8c8c;;font-family: 'Century Gothic','Trebuchet MS','Hiragino Sans GB',微软雅黑,'Microsoft Yahei',Tahoma,Helvetica,Arial,'SimSun',sans-serif;font-size: 10px;width: 100%;text-align: center;">
<p>©2018-<script>
var myDate = new Date();

document.write(myDate.getFullYear());
</script> Copyright <a href="https://kaygb.top/">KAYGB</a></p>
</div>
</div>
</div>
<style type="text/css">
body{font-size:14px;font-family:arial,verdana,sans-serif;line-height:1.666;padding:0;margin:0;overflow:auto;white-space:normal;word-wrap:break-word;min-height:100px}
td, input, button, select, body{font-family:Helvetica, 'Microsoft Yahei', verdana}
pre {white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;width:95%}
th,td{font-family:arial,verdana,sans-serif;line-height:1.666}
img{ border:0}
header,footer,section,aside,article,nav,hgroup,figure,figcaption{display:block}
blockquote{margin-right:0px}
</style>
<style id="ntes_link_color" type="text/css">a,td a{color:#064977}</style>

将上述代码替换只插件的编辑邮件模板的guest文件中,内容里面的头图还有域名地址请注意修改为自己的的域名

编辑邮件模板.png

美化后的界面预览

邮件模板预览.png

部分邮箱系统可能无法正常显示样式。

最后

到这里我的邮箱评论通知就配置好了,然后我也打开了评论微信通知,可以一起使用,很方便。如果您遇到什么问题或是有什么疑问都可以在下方留言。

自从博客迁移到Typecho后,折腾就没有断过,因为默认主题不好看,于是入手了handsome主题,因为后台自适应不好,于是换成了APEX后台,同时也一起使用了Typecho的三方安卓客户端nabo。

[post cid=”63” /]

[post cid=”71” /]

问题出现

  自从换成腾讯cdn之后,Typecho的xmlrpc文件就连不上了,我当时以为是因为换了cdn导致的缓存和回源的问题,还在网上找了各种办法,发现还是无法解决问题。

  于是,我将矛头指向了APEX,我以为是apex的缘故,然后我就将后台换回了默认的,满怀期待的试了一下,结果还是不行,然后我就崩溃了。

  我试了我的子站的xmlrpc,用的是apex后台,但是可以连接上,这时,我就很好奇了,难道是因为后台文件损坏?

  我来到了Typecho官网,点击下载,上传,解压,替换,一气呵成。打开xmlrpc接口,又满怀期待的试了一下,然后我就彻底自闭了。

  我关闭了xmlrpc接口,心如死灰。

解决办法

  在某一天,突然我就想起来我的宝塔安装了nginx防火墙,然后我进入宝塔看了一下,这个插件确实是在打开着,我尝试关闭了一下

IMG_20191226_091454.jpg

  来到后台,打开了xmlrpc接口,然后在nabo检测了一下,提示xmlrpc文件过旧,这个时候我就已经意识到了导致这个问题的确实是nginx防火墙的问题,顺利替换xmlrpc文件,然后愉快的登陆进去。

Screenshot_2019-12-26-09-24-09-019_cn.krait.nabo.jpg

后续

  我又把后台更换成了apex,因为nabo的评论需要关闭垃圾评论过滤,原版的后台操作实在是让人不开心。

  修改了apex的登陆界面,删掉了注册的入口,手机端自适应也更好看了。

Screenshot_2019-12-26-09-28-26-627_com.microsoft.emmx.jpg

typecho默认的gravatar头像源会时不时的抽风,后台加载图片的时候一直在转圆圈,F12看了一下才发现头像加载不出来。

解决办法

很简单,只需要在typecho的安装目录中的config.inc.php文件内添加一行代码即可

1
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cdn.v2ex.com/gravatar/');

这里使用的是v2ex的cdn镜像,如果你有更好的可以自己进行替换。

  在QQ群里看到萧瑟大哥申请了腾讯云的IPv6测试,以为可以爽一下,结果发现1m的带宽都要很贵。然后就发现了家里的宽带是可以连到ipv6的,他特地的发给我们测试了一下
IMG_20191213_083151.jpg
当时在公司,公司的网络是无法连接IPv6的,我用数据网络可以打开。于是,我就测试了家里的网络,路由器是不支持ipv6的,于是我链接上了网关的WiFi,结果惊奇的发现我也是可以链接IPv6的。

于是我就想到了一个主意:
[scode type=”yellow”]用ipv6配置远程桌面[/scode]

IPv6介绍

[scode type=”yellow”]资料来自百度百科[/scode]

IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址[1]。

由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍[1]。

互联网数字分配机构(IANA)在2016年已向国际互联网工程任务组(IETF)提出建议,要求新制定的国际互联网标准只支持IPv6,不再兼容IPv4。[2]

开始折腾

首先打开了IPv6的测试网站,可以看到我当前链接到的IPv6地址

然后我在网关里面满怀希望的配置了一下端口映射,将3389映射到了80端口,测试了一下,惊奇的发现无法连接

Screenshot_2019-12-13-08-40-37-942_com.microsoft.rdc.android.jpg

于是我请教了萧瑟大哥,耗费了很长时间
[scode type=”red”]这里是聊天记录图片稍后贴[/scode]

过程

中间测试了好几个IP地址,都是无法访问,从phpstudy换成宝塔发现还是无济于事
最后在一个测试IPv6端口的网站上发现电信把端口全给封了,白折腾一场,不过还是学到了一点,多查查资料还是很好的,哈哈

[scode type=”red”]本篇文章是在地铁上上写的,所以部分图片没有上传,稍后补充,还有一些测试网站,一起放上来[/scode]

在之前使用hexo主题icarus的时候就配置过背景的动态漂浮彩带,很好看也很华丽,但是那个js文件找不到了,于是我就在网上找到了一份源码,分享给大家。

使用方式

解压

解压之后将ribbon.js上传到你的云存储或是你的域名静态资源目录下。

这里我上传到了我的u-file云存储

ribbon.png

[scode type=”yellow”]也可以直接上传到您的网站根目录下[/scode]

引用

这里以handsome主题为例,放在自定义js内容中

1
<script type="text/javascript" size="90" alpha="0.5" zIndex="0" src="//这里是存放js文件的域名地址/ribbon.js"></script>

ribbon2.png
[scode type=”yellow”]也可以将这段代码复制到网站head中或者是标签前[/scode]

文件下载

[hide]

点击下载

[/hide]

参数跟随功能说明

您可以根据业务需要,控制是否对用户请求 URL 中问号之后的参数进行过滤或者跟随,该模块提供了三种模式的设置,请根据业务情况合理配置,分别为:

1.参数不跟随

默认情况下为【参数不跟随】模式时,此时将会忽略用户请求 URL 中 “?” 之后的参数,可有效提高资源文件的缓存命中率。示例如下:

假如用户请求的 URL 为:https://example.com/index.html?a=1&b=2,回源会过滤参数进行回源,在 CDN 节点会过滤掉请求参数进行缓存,也即 CDN 节点会以 https://example.com/index.html 作为缓存 Key;当用户再次发起的请求 URL 为:https://example.com/index.html?a=1&b=2&c=3 时,则会命中缓存,无需再次回源站获取资源。

2.全程跟随

当选择【全程跟随】模式,此时将不会忽略用户请求 URL 中 “?” 之后的参数。示例如下:

假如用户请求的 URL 为:https://example.com/index.html?a=1&b=2,CDN 节点会以完整的 URL 作为缓存 Key,也即当用户再次请求的 URL 为:https://example.com/index.html?a=1&b=2 时才会命中缓存,否则会直接携带完整的 URL 回源站获取资源。
在该模式下,当用户请求的 URL 为:https://example.com/index.html?a=1&b=2&c=3 时,则不会命中缓存,需要重新回源获取资源。

3.回源跟随

当选择【回源跟随】模式时,此时将会忽略用户请求 URL 中 “?” 之后的参数,但在回源阶段会携带用户请求 URL 中 “?” 之后的参数。示例如下:

假如用户请求的 URL 为:https://example.com/index.html?a=1&b=2,在 CDN 未命中资源的情况下,CDN 会携带完整的请求 URL:https://example.com/index.html?a=1&b=2 回源,并且在 CDN 节点会以 https://example.com/index.html 作为缓存 Key,当用户再次发起请求的 URL 为:https://example.com/index.html?a=1&b=2&c=3 时,则会直接命中缓存,无需重新回源。
该模式下,适合首次访问资源时需要携带完整的请求参数回源,但是在 CDN 节点需要过滤参数进行缓存,可有效提升资源文件的缓存命中率,提高分发效率。

注意事项

默认为参数不跟随状态,此时将会忽略用户请求 URL 中 “?” 之后的参数;
针对动态资源服务,建议设置为全程跟随模式;针对静态资源加速服务,建议配置为参数不跟随模式,可以提高资源文件的缓存命中率。
后面设置全程跟随模式就正常了
参数跟随
本文转载至https://www.n-1.cn/104.html