linux中使用mail命令发送邮件详解

linux中使用mail命令发送邮件详解

1、最简单的三种发邮件方式

  • 第一种
#可以把当前的shell当成编辑器来使用,编辑完成后使用ctrl+d来结束编辑并发送
mail -s test 12121@qq.com
  • 第二种
#使用|进行编辑发送
echo "test"|mail -s test 12121@qq.com
  • 第三种
#以文件内容作为邮件内容进行发送
mail -s test 12121@qq.com </etc/hosts

发送多个人时邮箱用逗号隔开

2、mail命令详解

mail常见的参数

-a   #带附件
-A   #配置好的发送邮件的账号
-s   #邮件标题
-b   #指定密件副本的收信人地址
-c   #指定副本的收信人地址
-u   #读取指定用户的邮件
-f   #读取指定邮件文件中的邮件

3、配置邮箱发件人

3.1 邮箱配置

生成授权码

linux中使用mail命令发送邮件详解_第1张图片

3.2 系统参数配置

#未加密的发送方式通过25端口,会被公有云封掉.
cat >>/etc/mail.rc <<EOF
set [email protected]
set smtp=smtp.qq.com
set [email protected]
set smtp-auth-password=授权码
set smtp-auth=login
EOF

#加密的方式465端口
cat >>/etc/mail.rc <<EOF
set nss-config-dir=/etc/pki/nssdb/          #加密方式配置
set smtp-user-starttls                      #加密方式配置
set ssl-verify=ignore                       #加密方式配置
set [email protected]                       #配置发件人
set smtp=smtps://smtp.qq.com:465            #配置使用qq邮箱发送邮件,不加密方式参考上面
set [email protected]             #邮箱名
set smtp-auth-password=授权码                #授权码
set smtp-auth=login                         #认证形式
EOF

4、配置加密方式发送邮件错误

  • 错误
#发送完邮件后报错
Error in certificate: Peer's certificate issuer is not recognized.

image-20230102101622761

  • 解决方式
echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/pki/nssdb/163.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d /etc/pki/nssdb/ -i /etc/pki/nssdb/163.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d /etc/pki/nssdb/ -i /etc/pki/nssdb/163.crt
certutil -L -d /etc/pki/nssdb/
cd /etc/pki/nssdb/
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt

你可能感兴趣的:(Linux系统,linux,服务器,运维)