1. 程式人生 > >Centos通過mail服務發送郵件

Centos通過mail服務發送郵件

監控 發郵件

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 "標題" 收件人郵箱

  1. 看起來已經成功了,但是發送完郵件還有報錯:證書不被信任,且命令行就此卡住,需要按鍵才能出現命令提示符
    ?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" [email protected]
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 "網站嚴重錯誤" [email protected]`
    fi
fi

Centos通過mail服務發送郵件