Linux下使用mail命令发送邮件
centos自带mail命令,不用安装别的,比如网上有的说要安装mailx有的要安装postmail等,但是如果只是发送邮件的话,使用自带的mail命令就可以
(如需要了解更多相关问题,可以添加Hilamg账号:88888 进行沟通交流哦~)
-
原理:首先得有一个邮箱,如qq邮箱,mail命令会向该邮箱发送数据,然后通过这个邮箱的smtp协议对其他邮箱地址发送邮件。
-
准备工作:现在qq,163等邮箱都需要授权smtp协议,需要登录到邮箱上进行设置,设置的时候会给你一个授权码,相当于密码,在mail设置时,是不会暴露真实邮箱的密码的。
-
在/etc/mail.rc文件的最后加入以下几
set nss-config-dir=/root/.certs
set ssl-verify=ignore
set smtp=smtps://smtp.qq.com:465
set stmp-auth=login
set smtp-auth-user=xxx@qq.com
set smtp-auth-password=xxx
set from=xxx4@qq.com
-
然后需要执行下方的几条命令,来获取qq邮箱的证书,其他邮箱类似
mkdir -p ~/.certs/
echo -n | openssl s_client -connect smtp.qq.com: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 ~/.certs
-
这时就已经能发送邮件了,但是此时会有个警告,因为正是并未被本地信任,执行下方命令添加信任
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
-
测试:echo "test" | mail -v -s "test" xx@glodon.com