代理SMTPS 465端口完成邮件sendmail配置备忘

之前一直使用AWS SES (Simple Email Service)作为邮件发送后端,按照官方说明配置,测试下来能收到就以为配置没有问题了。直到最近某短信邮件联动端只提示收到短信而没有邮件,这才发现SES存在丢件情况,我是配置的QQ邮箱作为接收端,通过QQ邮箱的自助查询,找到了收件丢失的原因:对于AWS来说邮件是正常投递成功(这一点后台统计也有说明),关键在于QQ邮箱,其拒收了来自AWS的邮件,理由是:

Action: failed
Final-Recipient: rfc822;
Diagnostic-Code: smtp; 550 Ip frequency limited [******** = Blocked IP 54.240.7.20]. http://service.mail.qq.com/cgi-bin/help?subtype=1&id=20022&no=1000725
Status: 5.3.0

字面上看是因为该发信IP频率过高因此被屏蔽,可能是因为AWS SES和他人共享了发信IP导致的,当然,通过链接查询到的原因证实了猜想。

继续阅读

BIND9 DNS Challenge自动配置Letsencrypt通配符(Wildcard)HTTPS证书

不得不说Letsencrypt的免费SSL数字证书确实大力促进了加密HTTP(HTTPS)的普及,使用HTTPS的好处自然有很多,比如防止登录凭据等敏感信息被第三方窃取、防止电信运营商的ISP劫持等,Google Chrome和Mozilla Firefox也在逐步将明文HTTP标识为不安全,这也在一定程度上加快了HTTPS的推广。

但是由于一些条件限制,国内的HTTPS推广普及一直不温不火,虽然大部分主流网站已经采用了HTTPS,但是大量的中小型网站、政府门户依然使用的是明文HTTP,给个人信息带来安全隐患,不使用HTTPS的理由总是有千百种,比如虚拟主机限制、CDN限制、老旧浏览器兼容、服务器资源消耗等,但是我们不能因为这些缘故而放弃HTTPS带来的优势,从长远来看HTTPS的全面普及是势不可挡的。

继续阅读

Lubuntu去掉开机显卡启动画面(NVIDIA Splash Screen Logo)

近日将一台老的笔记本换上SSD,考虑到性能问题,选择安装Lubuntu,安装完成后顿时感觉笔记本还能再战5年,当然虚拟机神马的是不敢再玩了,用来写写PHP和上上网还是绰绰有余的,比如说这篇博文就是在这台电脑上打出来的。

当然每次配置Linux系列系统都要折腾一番,这也注定了在很长一段时间内,Linux只适合服务器领域,虽然随着Android的发力,Linux也逐步扩展到移动领域,而且在移动端是吊打微软的节奏。实际上从简单办公和编程来说Windows上一些比较优秀的软件不能移植确实很遗憾,不过好在有wine的加成,至少我现在已经成功安装了Office 2003(这个版本的顺手够用)、Fireworks 8和知网CAJViewer,对于我来说Linux有这三个原本运行在Windows下软件就足矣。其他一些软件比如PhpStorm就得益于Java可以方便的移植到Linux环境下了。

继续阅读

VBScript 检测网络连接是否正常

某次维护测试需要配置脚本检测网络是否连通,正常手动检测网络是否连通有两个最为常见的办法:一是ping一个主机;二是打开某知名网站。所以脚本检测也顺着这两个思路进行。

关于ping的VBScript实现有如下代码可供参考:

Function Ping(strTarget)
  Dim objShell, objExec, strPingResults
  Set objShell = CreateObject("WScript.Shell")
  Set objExec = objShell.Exec("ping -n 2 -w 1000 " & strTarget)
  strPingResults = LCase(objExec.StdOut.ReadAll)
  If InStr(strPingResults, "reply from") Then 
    'WScript.Echo VbCrLf & strTarget & " responded to ping."
    Ping = True
  Else
    'WScript.Echo VbCrLf & strTarget & " did not respond to ping."
    Ping = False
  End If
  Set objExec = Nothing
  Set objShell = Nothing
End Function

继续阅读

解决Windows 资源保护找到了损坏文件但无法修复问题

今天Windows 8.1系统的电脑突然卡住并且自动重启,通过事件查看器得到的资料有限,初步怀疑是系统文件受损导致,于是通过经典的sfc /scannow验证系统并修复受损文件,但是得到以下提示:

开始系统扫描。此过程将需要一些时间。

开始系统扫描的验证阶段。
验证 100% 已完成。

Windows 资源保护找到了损坏文件但无法修复
其中某些文件。CBS.Log windir\Logs\CBS\CBS.log 中有详细信息。
例如 C:\Windows\Logs\CBS\CBS.log。请注意,在脱机服务方案中,
当前不支持日志记录。

继续阅读

100.64.0.1运营商级(Carrier-grade)NAT保留IP地址

在一次跟踪路由的网络操作时发现自己路由器下一跳路由节点的IP地址比较奇怪,是100.64.0.1。好奇促使我查询了这个IP地址的归属,结果是保留地址,到这里觉得比较奇怪了,按照常理以IPv4为例保留的IP地址一般为以下几种,常用于内网通讯或者特殊用途:

地址块起始结束备注
10.0.0.0/810.0.0.010.255.255.255局域网分配
172.16.0.0/12172.16.0.0172.31.255.255局域网分配
192.0.0.0/24192.168.0.0192.168.255.255局域网分配
169.254.0.0/16169.254.0.0169.254.255.255两台主机对等连接,当Windows获取不到IP地址的时候会自动分配此类地址
127.0.0.0/8127.0.0.0127.255.255.255回环(loopback)地址,表示本机
255.255.255.255/32255.255.255.255255.255.255.255广播地址

继续阅读

解决表单(Form)重置reset is not a function脚本出错

实际上很久之前遇到过一回,结果最近开发又遇到这个Bug,而且也折腾了我一些时间,比如说我在利用Ajax提交表单后,需要重置表单各项内容从交互上来避免用户重复提交,正常的表单HTML结构如下所示:

<form action="" method="post" id="LoginForm">
  <input type="text" name="username" value="" />
  <input type="password" name="password" value="" />
  <input type="submit" id="submit" name="submit" value="Login" />
  <input type="reset" id="reset" name="reset" value="Reset" />
</form>

继续阅读

VBA/VBScript提取Word(*.doc)文件中包含的图片(照片)

要处理的人事简历表是典型的Word文档,其中一人一份doc,里面包含有个人的照片,如果要把里面的照片复制出来就比较麻烦了,一般手动的做法是选择文件另存为,保存类型选择“网页(*.htm; *.html)”,这样就会另存为网页形式,同时会有个以文件名开头,以.files结尾的文件夹,点击进去就可以看到Word里面嵌入的所有资源,包含所需要的图片资源。

值得注意的是该文件夹里同一张图片正常会有两个副本,其中一张图片文件体积较大,另一张图片文件体积较小,显而易见较小体积的文件是Word自动创建的缩略图,在绝大多数情况下我们可能仅仅需要原始的插入图片,那么选择较大体积的图片文件即可,好在我要处理的人事简历表只有员工的一张照片,那么另存为网页后的文件夹也仅仅只有两张图片,一张原始图片,一张缩略图,这两张图片可以通过大小区分。

继续阅读

思科(CISCO) SG200-50 (SLM2048T) 48口千兆交换机配置

客户公司网络原先采用TP-Link系列的设备作为网络基础设施,经常性的出现稳定问题,对关键业务造成不良影响,终于在苦撑6年多可用率下降严重,公司终于决定更换交换机。

原来的网络基础设施主要服务小型网络,采用两台TP-Link 16口交换机与DELL PowerEdge网关型服务器的两个网口连接,分别处理来自两个独立子网络的流量,其中不同的子网络经过Forefront TMG 2010进行流量分流到不同的采用Hyper-V虚拟的内网服务器中,最后通过服务器的网络出口。

实际上如果让我再选择一次我肯定不会选择Windows Server 2008 R2搭配Forefront TMG 2010这种坑爹的组合,具体下篇文章再讲。下一次服务器升级已经提上议案了,准备采用Ubuntu Server作为母系统,然后搭配KVM虚拟机,虚拟Windows系统,完成相关软件的部署。

继续阅读

网页前端设计之HTML5表单特性的小技巧

在网页设计过程中经常会有一些容易被我们忽略的细节,大部分主流的浏览器会为我们提供一些形如自动完成、自动更正、自动大写、拼写检查、语音输入等人性化特性,但是并不是任何场景下我们都需要这些特性,比如对于电子邮件地址的输入,我们就不需要自动更正、自动大写、拼写检查等特性,而对于用户登录表单,为安全考虑则不希望自动完成的特性存在,今天要介绍的就是这些特性以及如何禁止这些特性的存在。

1. 自动完成(autocomplete)

大部分浏览器为了便于你下一次填写表单可能会有记忆功能或者又称为“自动完成”,形如下面的图示:

继续阅读