Linux 下使用mail/mailx命令发送邮件

linux os: RedHat 7

1.安装mailx:

yum install mailx

2.配置/etc/mail.rc:

vi /etc/mail.rc 

# 省略默认设置......
##末尾加入以下参数

set [email protected]    ## 发送邮件后显示的邮件发送方
set smtp=smtp.qq.com      ## smtp邮件服务器地址
set smtp-auth-user=123456 ## 发件人邮箱
set smtp-auth-password=XXXXX ## (邮箱账号的客户端授权码,需要登陆自己的邮箱进行设置,不是邮箱密码)
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb 

3.测试发送:

# 第一种 mail
##把打印的内容作为标准输入,送给mail命令
[root@test root]# echo "邮件正文" | mail -s "邮件标题" [email protected]

##-s表示主题,"< mail.txt"表示把mail.txt里的内容作为邮件正文
[root@test root]# mail -s "邮件标题g" [email protected] < mail.txt 

##也可以用cat mail.txt的输出作为mail命令的标准输入,作为邮件正文
[root@test root]#cat mail.txt | mail -s "邮件标题" [email protected]


##-c表示抄送的地址([email protected],[email protected]),[email protected]是直接发送的地址
[root@test root]# echo "邮件正文" | mail -s "邮件标题" -c "[email protected],[email protected]" "[email protected]"
[root@test root]# mail -s "邮件标题" -c "[email protected],[email protected]" "[email protected]" < mail.txt 

##测试发现,用uuencode发地附件,在邮箱里是不能正常显示的,是一些“乱码”,需要额外的解码命令,总之不太好用
[[root@test root]# uuencode /home/tough/pic/a.png "Tough's Photo" | mail -s "Pic Test" [email protected]

##在网上看到的伪造发件人地址方法(-- -f后跟发发件人地址,-F发件人名称),测试之后效果也不太理想
[root@test root]# mail -s Tough [email protected] < mail.txt -- -f [email protected] -F 666


# 第二种 mailx 
echo test | mailx -v -s "test"  [email protected]  < test.txt
## -v可以动态显示邮件发送状态。可以把test.txt文件的内容作为邮件内容发送


# 其它命令
##查看发邮件的队列
mailq

 

你可能感兴趣的:(linux,运维杂谈,shell,linux,devops)