admin管理员组

文章数量:1646326

1. mailx

1. 准备工作

  • 打开邮箱设置,开启pop3/smtp服务和imap/smtp服务
  • 安装mailx:yum install -y mailx

2. 配置

设置/etc/mail.rc文件,在文件尾追加如下配置,

set from=xxx@qq						#发件人邮箱
set smtp=smtp.qq
set smtp-auth-user=xxx@qq		#登录用户名
set smtp-auth-password=					#邮箱授权码,在QQ邮箱设置界面发短信生成
set smtp-auth=login							#登录

3. 发送邮件

$ echo "Hello Maxwell,这里是邮件正文." | mail -s "邮件主题" xxx@qq

等几秒钟,就可以收到邮件了

4. 其他参数

使用mail -h查看,带邮件正文

带正文邮件

#多个收件人使用逗号隔开
#重定向
mail -s "Tile"  xxx@qq,yyy@qq < /root/sms_out.txt 		
#管道			
cat /root/sms_out.txt  | mail -s "Tile"  xxx@qq

带附件邮件

mail -s "Tile"  xxx@qq  -a  /root/sms_out.txt  

5. 使用SSL SMTP发送邮件

从QQ邮箱获取SSL证书,并在CentOS中设置

#存放证书的位置
$ ~ mkdir -p /root/.certs
#获取QQ 邮箱的 SSL 证书
echo -n | openssl s_client -connect smtp.qq:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt

#添加第一个证书到证书数据库中
certutil -A -n "GeoTrust SSL CA" -t "C,,"  -d  ~/.certs  -i  ~/.certs/qq.crt
#添加第二个证书到证书数据库中
certutil -A -n "GeoTrust Global CA" -t "C,,"  -d  ~/.certs  -i  ~/.certs/qq.crt

#列出指定的目录下的所有证书
certutil -L -d /root/.certs
#如果出现Error in certificate: Peer's certificate issuer is not recognized.执行下面命令
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs -i ~/.certs/qq.crt
我遇到的错误提示Error in certificate: Peer's certificate issuer has been marked as not trusted by the.解决办法
$  certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs -i ~/.certs/qq.crt
Notice: Trust flag u is set automatically if the private key is present.


编辑/etc/mail.rc配置文件,修改和增加配置如下:

#修改
set smtp=smtps://smtp.qq:465
# set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=/root/.certs


6. mail、mailx、sendmail和postfix对比

mail和mailx是邮件客户端,属于mail user agent,MUA,负责查看、编写邮件和向MTA发送邮件,mailx是mail的功能加强版。
sentmai和postfilx是邮件服务器,可以用做mail transport agent,MTA,负责邮件在网络上传输的MTA,将邮件从一个MTA传送至另一个MTA。
邮件用户代理(MUA,Mail User Agent);
邮件传送代理(MTA,Mail Transport Agent);
邮件分发代理(MDA,Mail Deliver Agent)。

2. sentmail

参考这个吧,目前没时间搞了
使用shell脚本发送邮件带附件:
https://blog.csdn/bingdianone/article/details/100879050

本文标签: 发送邮件脚本邮箱Shellqq