安装和配置系统的mailx
:
这里以服务器首选的Linux发行版CentOS为例(好像默认都已经集成了mailx的,至于说sendmail,笔者感觉效能差,就不做参考了)。
运行命令:
yum -y install mailx
即可自动安装mialx了。
安装完成后,编辑/etc/mail.rc
文件配置mailx使用QQ邮箱作为发送邮件邮箱。
在配置文件最后添加如下QQ邮箱配置即可:
代码语言:javascript复制set from=xxxxxx@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=xxxxxx@qq.com
set smtp-auth-password=你的QQ邮箱授权码
set smtp-auth=login
#set smtp-use-starttls 这里是不需要配置的,很多地方没说明,配置了反而会验证失败,所以我注释掉;
set ssl-verify=ignore
set nss-config-dir=/root/.certs
记得要用到QQ邮箱的授权码哦,可以提前复制填到标注的对应位置即可!
因为阿里云ECS封禁了25端口,所以我们只能使用TLS方式(TSL也就是使用SSL加密的方式,使用465或者其他端口来发送邮件)绕过25端口需求来发送邮件,所以必须先获得邮箱的SSL证书并存放到本地,最后一行的nss-config-dir
就是制定的存放QQ邮箱SSL证书的位置。
然后保存上述的编辑退出。
因为需要QQ邮箱的SSL证书,所以我们还需要手动的获取QQ邮箱的证书保存到本地指定的目录里以备调用和验证,具体命令如下:
代码语言:javascript复制mkdir -p /root/.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 /root/.certs
为了防止出现前文所说的发送邮件警告提示,还需要进入邮箱SSL证书存放目录/root/.certs
里执行如下命令:
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
返回如下提示即可:
代码语言:javascript复制**Notice: Trust flag u is set automatically if the private key is present.**
这是为了信任证书的标记操作。
至此,已经完成了mailx结合QQ邮箱发送系统邮件的部署了,通过命令行发送测试邮件试试吧:
mailx -s "邮箱测试" xxxx@qq.com < message_file.txt
命令行解读:发送主题为“邮箱测试”,内容为当前目录下message_fiel.txt文件内容到xxxx@qq.com邮箱。