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

文章详细介绍了在Linux环境中使用mail命令发送邮件的三种方法,并讲解了如何配置邮箱发件人信息,包括设置SMTP服务器、授权码和加密方式。在遇到加密发送邮件时的证书错误问题,文中给出了通过添加信任证书的解决方案。
摘要由CSDN通过智能技术生成

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 邮箱配置

生成授权码

image-20230102093136224

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.

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值