時間:2018-01-30 22:48:27 閱讀:1564 評論:0 收藏:0 [點我收藏+]linux
標籤:顯示 管道符 問題 回車 color 簡單的 centos 忽略 word shell
當須要服務器定時發送郵件到本身郵箱時,一個郵件服務就很重要了,如下主要是mailx的實現,主要是利用centos
1.安裝mailx服務器
yum install mailx -y
2.使用到的配置文件只有一個,是/etc/mail.rc,經過修改配置文件/etc/mail.rc可使用外部SMTP服務器,輕鬆實現linux發郵件功能。測試
set from=xxxx@qq.com qq郵箱或者其餘郵箱 set smtp=smtp.qq.com smtp地址 set smtp-auth-user=xxx@qq.com set smtp-auth-password=nibpgbkksmlbbabe 注意:目前大部分的外部郵件服務使用第三方客戶端時,都須要使用受權碼,上面的smtp-auth-password使用的就是受權碼,而不是郵件賬號的密碼。具體操做在最後有附圖
到目前爲止,若是不是雲主機的話,已經能夠實現發送郵件了。如果雲主機,則須要下面的操做阿里雲
1、配置mailx使用SMTP發送郵件:
一、安裝mailx;這裏直接使用yum install mailx -y 進行安裝便可;
二、在/etc/mail.rc配置文件中,在最後面輸入如下內容:加密
set from="xxx@126.com" set smtp=smtp.126.com set smtp-auth-user=xxx set smtp-auth-password=郵箱密碼 set smtp-auth=login
配置都很簡單,這裏就很少說了,有兩點須要注意的:
一、郵箱須要開啓SMTP功能,每一個郵箱的開啓方法都大同小異;
二、如今大部分郵箱使用SMTP會讓你啓動一個受權碼來代替郵箱密碼
具體各個郵箱開啓受權碼的方式能夠直接百度;
測試是否發送成功:
mailx -s "郵箱測試" xxxx@qq.com < message_file 測試郵件一旦成功,收件箱會立刻收到郵件,若是沒有收到,則等一會能夠看到shell界面的錯誤提示; 上面配置的是簡單的使用25端口的SMTP發送郵件的功能,通常狀況下咱們使用這個就足夠了,這個辦法 在網上也不少配置說明,這裏就再也不浪費時間了,下面咱們講重點,使用TSL發送郵件; 前面說了,阿里雲把25端口封了,去申請解封也比較麻煩,因而就想到了用TSL方式,繞過25端口發送郵件; TSL也就是使用SSL加密的方式,使用465或者其餘端口來發送郵件,如今大部分郵箱都支持SSL,具體SSL的端口 地址,也能夠查百度,這裏是以126郵箱爲準,126郵箱使用的是465或者994端口; 下面是詳細的配置過程: 一、軟件要求:openssl、mailx 12.0以上; 二、既然使用的是SSL協議,那固然是要有證書的了,下面是獲取證書的操做;centos7
mkdir -p /root/.certs/ echo -n | openssl s_client -connect smtp.126.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
按照上面操做,只要不報錯,就是正常的,咱們會在/root/.certs下面看到幾個證書文件,說明操做成功了;至於爲何spa
要這麼作,不要問我,我也是COPY大神的辦法;有興趣的能夠參考最後大神的文章連接;命令行
三、證書配置好了,下面咱們就要來配置mail.rc配置文件了,和最開始的不一樣,這裏咱們就須要配置和TSL相關的東西了
set from=xxxooo@126.com set smtp=smtps://smtp.126.com:465 set smtp-auth-user=xxxooo@126.com set smtp-auth-password=你的受權碼 set smtp-auth=login set ssl-verify=ignore set nss-config-dir=/root/.certs
其實就多了幾個配置stmp前面加了stmps://指定協議類型,後面加上端口號;
啓動ssl協議 ,下面指定ssl證書所在目錄,就這樣。
配置OK了以後,測試發送郵件;
測試能收到郵件就OK,說明發送沒問題,至於具體會出現什麼報錯,能夠根據報錯的內容進行谷歌;
我這裏在發送郵件的時候會提示一個證書不信任的問題,由於不影響正常發送郵件,因此選擇忽略;
證書不信任的問題,須要進入存放證書的目錄,執行
cd /root/.certs
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
最後顯示 Notice: Trust flag u is set automatically if the private key is present.
後面雲主機實現方法 轉載自笛聲
mail -s "theme" addressee
,回車後輸入內容按Ctrl+D
發送郵件.echo "mail main content" | mail -s "theme" addressee
mail -s "theme" addressee < /tmp/t.txt
thme是郵件標題,addressee收件人地址