明月登楼

Linux下利用mailx结合QQ邮箱发送系统邮件提醒等
  使用阿里云ECS的站长们应该都知道阿里云ECS为了防止其服务器被当做垃圾邮件发送服务器禁止了邮件端口25的使用...
扫描右侧二维码阅读全文
21
2017/12

Linux下利用mailx结合QQ邮箱发送系统邮件提醒等

  使用阿里云ECS的站长们应该都知道阿里云ECS为了防止其服务器被当做垃圾邮件发送服务器禁止了邮件端口25的使用,这就造成系统级的提醒邮件无法发送,类似Fail2banDDoS Deflate的重要暴力破解、DDOS攻击提醒邮件有时候还是很重要的,错过了会给我们的服务器运维工作带来被动的,所以明月一直在谋求Linux系统邮件发送的问题解决。

timg.jpg

  还好在博客【笛声】里发现了【mailx配置TSL发送邮件】这篇文章就是让Linux系统的mailx结合QQ邮箱发送邮件的,照着此文的指导,终于可以收到邮件了,哈哈!

  但是有个小瑕疵就是每次发送完邮件后,在命令行里会提示“Error in certificate: Peer's certificate issuer is not recognized.”这样的证书没有获得认可的警告提示,虽然并不影响邮件的发送,但总是有“不科学”的感觉呀?

  还好有万能的度娘和谷姐,一番搜寻后终于完美解决了,下面就将所有的步骤一一列出来分享给大家,也算是自己折腾的一次学习记录了:

安装和配置系统的mailx

  这里以服务器首选的Linux发行版CentOS为例(好像默认都已经集成了mailx的,至于说sendmail,明月感觉效能差,就不做参考了)。

  运行命令:

yum -y install mailx

  即可自动安装mialx了。

  安装完成后,编辑/etc/mail.rc文件配置mailx使用QQ邮箱作为发送邮件邮箱。

  在配置文件最后添加如下QQ邮箱配置即可:

set from=xxxxxx@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=xxxxxx@qq.com
set smtp-auth-password=你的QQ邮箱授权码
set smtp-auth=login
#set smtp-use-starttls 这里是不需要配置的,很多地方没说明,配置了反而会验证失败,所以我注释掉;
set ssl-verify=ignore
set nss-config-dir=/root/.certs

  记得要用到QQ邮箱的授权码哦,可以提前复制填到标注的对应位置即可!

  因为阿里云ECS封禁了25端口,所以我们只能使用TLS方式(TSL也就是使用SSL加密的方式,使用465或者其他端口来发送邮件)绕过25端口需求来发送邮件,所以必须先获得邮箱的SSL证书并存放到本地,最后一行的nss-config-dir就是制定的存放QQ邮箱SSL证书的位置。

  然后保存上述的编辑退出。

  因为需要QQ邮箱的SSL证书,所以我们还需要手动的获取QQ邮箱的证书保存到本地指定的目录里以备调用和验证,具体命令如下:

mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs

  为了防止出现前文所说的发送邮件警告提示,还需要进入邮箱SSL证书存放目录/root/.certs里执行如下命令:

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

  返回如下提示即可:

**Notice: Trust flag u is set automatically if the private key is present.**

  这是为了信任证书的标记操作。

  至此,已经完成了mailx结合QQ邮箱发送系统邮件的部署了,通过命令行发送测试邮件试试吧:

mailx -s "邮箱测试" xxxx@qq.com < message_file.txt

命令行解读:发送主题为“邮箱测试”,内容为当前目录下message_fiel.txt文件内容到xxxx@qq.com邮箱。

  测试邮件一旦成功,收件箱会马上收到邮件,如果没有收到,则等一会可以看到shell界面的错误提示;反正明月照着上述设置后是成功收到邮件了,祝大家一次配置成功!ヾ(๑╹◡╹)ノ"

最后修改:2017 年 12 月 21 日 08 : 36 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论

6 条评论

  1. 懿古今

    这个方法非常不错,有机会我也要折腾一番才行,谢谢分享

    1. 明月登楼
      @懿古今

      呵呵,其实很简单的!

  2. 酷品网

    知识点博文,来了总得留个印

    1. 明月登楼
      @酷品网

      呵呵,多谢支持!欢迎常来哦!

  3. 笛声

    其实,有个更简单的方法:https://yundun.console.aliyun.com/?p=sc#/sc/port 直接申请解封25端口。

    1. 明月登楼
      @笛声

      呵呵,感觉这样的方式最合适了,申请解封还是麻烦了!