我的centos7.x是新装的系统,暂未开启任何邮箱服务 常说的mail、mailx和sendmail
1. 安装mailx
yum install mailx
2. 获取邮箱第三方登录授权码
以qq邮箱为例,“设置”–>“账户” 账号往下翻,找到POP3/IMAP…,开启pop3/SMTP、IMAP/SMTP,点击生成授权码,手机验证 复制授权码
3. 生成证书
mkdir -p /root/.certs 创建证书目录
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt #获取邮件服务器证书
chmod +x /root/.certs/qq.crt #qq.crt 添加执行权限
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt #添加SSL证书到数据库
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt #添加global证书到数据库
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs/./ -i qq.crt #指定受信任证书,防报错
certutil -L -d /root/.certs #列出安全数据库中的证书
4. 配置mail
mail命令的系统级配置文件是/etc/mail.rc
vi /etc/mail.rc
# For Linux and BSD, this should be set.
set bsdcompat
set from=1111111@qq.com #设置邮件发送方
set smtp=smtps://smtp.qq.com:465 #邮件服务器,我这里是qq
set smtp-auth-user=1111111@qq.com #smtp验证用户邮箱
set smtp-auth-password=cdesllrlz111111 #邮箱授权码
set smtp-auth=login #认证方式
set ssl-verify=ignore #忽略SSL验证
set nss-config-dir=/root/.certs #证书目录
#set smtp-use-starttls=yes # STARTTLS时使用
5. 邮箱测试
echo " 邮件正文内容 " | mail -s " 邮件主题 " 目的地邮箱地址@xx.com 等待~叮 邮箱就收到消息啦 证书,配置严格按格式、步骤来一般就不会报错
6. 报错大合集
1.Could not resolve host: //smtp.qq.com
编辑配置文件: set smtp= smtps:// smtp.xxx.com:465 # 这里填入smtp地址
465端口 465端口,需要加上smtps://协议;如果是587端口,不需要加smtps://或者写smtp://
端口465用于smtpsSSL加密在任何SMTP级别通信之前自动启动。端口587用于msa它几乎像标准SMTP端口。
出现Could not resolve host:时,一定要检查Could not resolve host:之后提示的内容,在/etc/mail.rc配置文档中,修改或注释(文档自己有的注释掉;自己添加的检查错误)
2.“Unexpected EOF on SMTP connection”
基本上是由于端口只支持SMTPS导致,将协议改成smtps://即可。
3.出现502报错“smtp-server: 502 Invalid input from 122.238.160.241 to newxmesmtplogicsvrsza_”
检查**/etc/mail.rc配置文档**中邮件地址的填写,填邮箱地址啊! set from set smtp-auth-user设置成非邮箱地址,eg:用户名Bessssss, 则会报错“smtp-server: 535 Login Fail”
|