Centos通过mail服务发送邮件

1.centos安装mail服务 yum -y install mailx

2.创建ssl文件 (1) mkdir -p /root/.mailssl/  #####创建目录,用来存放证书 (2) echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.mailssl/163.crt #####向163请求证书 (3) certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.mailssl -i ~/.mailssl/163.crt #####添加一个证书到证书数据库中 (4) certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.mailssl/163.crt #####添加一个证书到证书数据库中! (5) certutil -L -d /root/.certs #####列出目录下证书

3.修改/etc/mail.cy ;添加以下内容:

      set from=***********@163.com  
      set smtp=smtps://smtp.163.com:465  
      set smtp-auth-user=********@163.com
      set smtp-auth-password=********* 
      set smtp-auth=login 
      set nss-config-dir=/root/.certs  
      set ssl-verify=ignore 

---说明 from:对方收到邮件时显示的发件人 smtp:指定第三方发邮件的smtp服务器地址 set smtp-auth-user:第三方发邮件的用户名 set smtp-auth-password:用户名对应的密码,有些邮箱填的是授权码 smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式 nss-config-dir: SSL验证信息 ssl-verify: SSL验证信息 4.现在发送测试邮件 echo "正文" | mail -s "标题" 收件人邮箱 5. 看起来已经成功了,但是发送完邮件还有报错:证书不被信任,且命令行就此卡住,需要按键才能出现命令提示符  Error in certificate: Peer's certificate issuer is not recognized. 按照下面走: (1)cd /root/.mailssl/ (2)certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt

6.再次发送邮件 echo "hallo" | mail -v -s "this is Test Mail" 1125401800@qq.com 7.送大家一个shell脚本,在crontab建立一个定时任务每10分钟去执行此脚本 脚本内容比较简单,希望你们能用的上(仅代表个人观点)

#!/bin/bash
url="200"
curl=`curl -I  http://网站url| grep 200 | awk '{print $2}'`
if [ "$url" == "$curl" ];then
   echo "网站安然无恙"
else
    if [ "$url" != "$curl" ];then
   `echo "正文" | mail -s "网站严重错误" 1125401800@qq.com`
    fi
fi