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

投稿   明月登楼  2017-12-26 07:38:40  144 人阅读  28 条评论

投放广告联系   诚邀合作伙伴   赞助我们   垃圾评论惩罚

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

Linux下利用mailx结合QQ邮箱发送系统邮件提醒等 建站经验 第1张

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

但是有个小瑕疵就是每次发送完邮件后,在命令行里会提示“Error in certificate: Peer's certificate issuer is not recognized.”这样的证书没有获得认可的警告提示,虽然并不影响邮件的发送,但总是有“不科学”的感觉呀?还好有万能的度娘和谷姐,一番搜寻后终于完美解决了,下面就将所有的步骤一一列出来分享给大家,也算是自己折腾的一次学习记录了:

安装和配置系统的 mailx

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

运行命令:

  1. yum -y install mailx

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

在配置文件最后添加如下QQ邮箱配置即可(记得保存更新哦):

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

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

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

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

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

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

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

返回如下提示即可:

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

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

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

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

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

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

历史上的今天:

如果文章对你有帮助,请赞赏支持作者继续创作!

文章标签: ,   ,   ,  
原文地址:https://lnmp.ymanz.com/lnmp/198.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 明月登楼 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!
明月登楼博客可以为您提供网站建设、网站优化、服务器运维专业优质服务!

 发表评论


  1. 萌虎下山
    萌虎下山 【小白】 @回复

    这方法不错,试试看

  2. 笛声
    笛声 【举人】 @回复

    这两天博客访客增多,肯定是你的功劳。

  3. 南侠
    南侠 【小白】 @回复

    直接在主题函数里加入smtp发送邮件,采用465端口应该也可以!
    我是这么干的…

  4. 橘子书
    橘子书 【丞相】 @回复

    能避免暴露真实IP吗?再者,其实原先的信件发送只要改改端口,换成加密的SSL,依旧可以用,没必要折腾这个。

  5. 银色月航
    银色月航 【举人】 @回复

    按照要求,成功测试发送,谢谢明月啦

  6. 西枫里博客
    西枫里博客 【书童】 @回复

    不错,不走寻常路的邮件发送功能

  7. 姜辰
    姜辰 【进士】 @回复

    厉害了,为什么不考虑把后台彻底消失掉?

    • 明月登楼
      明月登楼 作者回复2017-12-27 08:26  回复

      @姜辰后台彻底消失掉?没有明白啥意思!这是Linux下为了接受系统邮件提醒的!跟前端的邮件几乎没有什么关系的!

  8. 阿财博客
    阿财博客 【举人】 @回复

    最宾电脑装了一个XP ,但是电脑还是那么卡,慢不知道为什么
    装了deepin系统就不卡了,可惜这个系统应用软件太少了,没法玩

    • 明月登楼
      明月登楼 作者回复2017-12-27 08:27  回复

      @阿财博客呵呵,XP已经是个微软弃儿了,所以就跟公共厕所一样,谁都可以来蹂躏一番!慢是正常的,快了反而不正常了!

  9. 说彩网
    说彩网 【书童】 @回复

    过来打打酱油,这几天推送的文章越来越专业了哇。

  10. 小宋日志
    小宋日志 【尚书】 @回复

    高手呀。

  11. 银色月航
    银色月航 【举人】 @回复

    干货!!!

  12. 钟水洲博客
    钟水洲博客 【进士】 @回复

    不错,我去试试

  13. 90客栈
    90客栈 【尚书】 @回复

    今天来打下酱油

  14. 万正远洋
    万正远洋 【秀才】 @回复

    不错,很给力!我也设置了!赞一个!

  15. 赚钱小站
    赚钱小站 【举人】 @回复

    以前经常用~

  16. 吃货小栈
    吃货小栈 【举人】 @回复

    Linux系统邮件还是有不少用处的!

  17. 学习笔记Blog
    学习笔记Blog 【状元】 @回复

    哈哈,不错,这个mailx还是非常的赞的!

  18. 历史趣谈
    历史趣谈 【进士】 @回复

    这个方法好,很高效,而且还不会进垃圾邮箱

    • 明月登楼
      明月登楼 作者回复2017-12-26 08:52  回复

      @历史趣谈嗯,是的,感觉很不错的,设定一个邮箱专门接受此类邮件就是了!更加方便快捷! [威武]

  19. 趣知识
    趣知识 【丞相】 @回复

    jmail是不是可以解决这个问题?

    • 明月登楼
      明月登楼 作者回复2017-12-26 08:23  回复

      @趣知识mailx相对来说更加接近原生系统邮件,并且执行效能还是很不错的!
      昨晚一个IP的链接高达161次,已经被系统捕获并发送了邮件通知!