zoukankan      html  css  js  c++  java
  • centos 7 配置mail.rc使用第三方SMTP发送邮件

    目的:连接第三方smtp服务器去发送邮件,比如qq、新浪、网易等邮箱,只需要直接配置mail.rc文件即可实现。

    本实验使用网易126邮箱。

    1.先去126邮箱开通smtp服务并获得授权密码记住,后面会用到。

    2.查看smtp.126.com服务器开启了那些端口,以前默认是25,现在网易停用了。

    [root@danny ]# nmap smtp.126.com
    
    Starting Nmap 6.40 ( http://nmap.org ) at 2020-06-17 16:05 CST
    Nmap scan report for smtp.126.com (123.126.96.4)
    Host is up (0.014s latency).
    Other addresses for smtp.126.com (not scanned): 123.126.96.5 220.181.15.113 220.181.15.112 220.181.15.111 123.126.96.3 220.181.15.114
    rDNS record for 123.126.96.4: mail-m964.mail.126.com
    Not shown: 998 filtered ports
    PORT    STATE SERVICE
    465/tcp open  smtps
    587/tcp open  submission

    或者使用nc命令扫描对应端口查看开启状态

    [root@danny ]# nc -zv  smtp.126.com 465
    Ncat: Version 7.50 ( https://nmap.org/ncat )
    Ncat: Connected to 123.126.96.5:465.
    Ncat: 0 bytes sent, 0 bytes received in 0.04 seconds.

    可以看到开启了465和587端口(本次实验使用465),而下图可看到465端口使用的是ssl协议,所以相对mail.rc配置就需要使用ssl协议。

    3.配置mail.rc

    vim /etc/mail.rc
    
    set from=xxx@126.com       //发件方邮箱或昵称,经过测试必须得和下面的发件邮箱一致,否则发不了邮件
    set smtp=smtps://smtp.126.com:465   //注意使用的ssl协议连接
    set smtp-auth-user=xxx@126.com    //发件邮箱
    set smtp-auth-password=xxxxxx  //此处使用的就是前面生成的授权码
    set stmp-auth=login
    set ssl-verify=ignore
    set nss-config-dir=/root/.certs //此处证书需要手动生成,否则会报错或者连接失败

    重启服务

    systemctl restart postfix.service

    4.发送邮件测试

    #第一种
    echo "test" | mail -s 'test linux'  xxx@qq.com
    
    
    #第二种
    mailx -v -s " 主题 " xxx@qq.com < a.sh
    //-v可以动态显示邮件发送状态。可以把a.sh文件的内容作为邮件内容发送

    关于上面证书创建

    默认的证书是没有的,如果不创建相应证书,邮件发送会报错或者连接失败。

    //创建证书目录
    mkdir -p /root/.certs
    cd .certs/
    
    //获取邮件服务器证书
    echo -n "" | openssl s_client -connect smtp.126.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > 126.crt
    
    //将证书添加到受信任列表
    certutil -A -n 'smtp_126' -t "P,P,P" -d . -i ./126.crt
    
    //上述命令中-A表示添加,-n是nickname,可以随意取,例如126或qq;-t表示受信任的标签,可取值是t/c/p三种或者其组合;-d表示证书所在目录,-i指示证书文件的位置。
    
    //# 指向证书文件目录
    set nss-config-dir=/root/.certs
     
    注:
    网上许多教程的-t标签都是"C,,",实践中发现使用该标签仍会报错(gmail的证书是google自己签发的,用C标签没问题,许多博主估计没试就直接抄来)。通过查阅certutil的用法,使用P标签顺利解决问题。
    配置完成后,再使用mail命令发送邮件,烦人的警告消失不见。

    参考文章:http://www.51testing.com/html/53/n-3727153.html

  • 相关阅读:
    简单的多重背包
    完美子图
    活动投票
    人品问题
    售票系统
    最短路径
    优美值
    前端-常用函数记录-持续更新
    前端-单点登录中cookie中domain的思考
    大白话说GIT常用操作,常用指令git操作大全
  • 原文地址:https://www.cnblogs.com/dannylinux/p/13153189.html
Copyright © 2011-2022 走看看