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 邮箱配置
生成授权码
3.2 系统参数配置
#未加密的发送方式通过25端口,会被公有云封掉.
cat >>/etc/mail.rc <<EOF
set from=12121@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=12121@qq.com
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 from=12121@qq.com #配置发件人
set smtp=smtps://smtp.qq.com:465 #配置使用qq邮箱发送邮件,不加密方式参考上面
set smtp-auth-user=12121@qq.com #邮箱名
set smtp-auth-password=授权码 #授权码
set smtp-auth=login #认证形式
EOF
4、配置加密方式发送邮件错误
- 错误
#发送完邮件后报错
Error in certificate: Peer's certificate issuer is not recognized.
- 解决方式
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