linux下的mail命令发邮件步骤以及常见报错解决

1.配置发件人信息

配置信息路径: /etc/mail.rc
以QQ邮箱为例:配置信息内容如下:
set from=332299@qq.com ##发件箱
set smtp=smtps://smtp.qq.com:465 ##固定写法无需修改
set smtp-auth-user=332299@qq.com # 发件箱账号 跟from 值一致
set smtp-auth-password=ixpsezboasxpcifj ##邮箱授权码
set smtp-auth=login ##注:"="两边无空格
set ssl-verify=ignore ## 固定写法 无需更改
set nss-config-dir=/root/.certs ##认证信息的路径
##邮箱授权码的获取步骤
登录QQ邮箱网页版 依次点击【设置】-【账户】-【POPS/SMTP服务】-【开启】-【发送短信】-【已发送】-【获得授权码】然后获得授权码
在这里插入图片描述
在这里插入图片描述

2.配置QQ邮箱的认证证书信息

在root 用户下,依次输入下面的命令,如果没有报错即可
命令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
命令6:先进入.certs 目录下 ,再输入命令:
cd /root/.certs/
certutil -A -n “GeoTrust SSL CA - G3” -t “Pu,Pu,Pu” -d ./ -i qq.crt
输完命令6 之后出现这句就行了 Notice: Trust flag u is set automatically if the private key is present.

3.测试邮件发送成功

echo “欢迎使用mial发送邮件” |mail -s “邮件测试” 700000002@qq.com在这里插入图片描述

4.非root用户发送邮件

下面的例子采用的一般用户 为oracle 用户
如果只执行了上面步骤 root用户可以发送邮件成功,但是其他用户会报错如下:,所以下面的步骤是如何配置一般用户可发送邮件
在这里插入图片描述

第一步:新建文件夹 存放存放SSL认证证书

在root 用户下,新建一个文件夹qqssl 用于存放SSL认证证书
mkdir /etc/qqssl

第二步: 移动证书到新文件夹下

mv /root/.certs/ /etc/qqssl

第三步:更改新文件权限

在这之前,你可以先查看一般用户的组
groups ## 通过该命令,可以看到oracle 用户的组为oinstall
在这里插入图片描述
chown -R oracle:oinstall /etc/qqssl
查看该文件夹的所属用户是否为oracle 用户组是否为oinstall 在这里插入图片描述

第四步:更改配置文件 /etc/mail.rc

修改如下:
原来的证书路径:set nss-config-dir=/root/.certs ##认证信息的路径
修改成新路径: set nss-config-dir=/etc/qqssl/.certs
经过上面的步骤即可完成

第五步:在oracle 用户上进行测试并验证

echo “一般用户欢迎使用mial发” |mail -s “邮件测试” 700000002@qq.com


版权声明:本文为weixin_45517507原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>