centos7 利用mailx發送郵件

centos7 利用mailx發送郵件

時間: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收件人地址

相關文章
相關標籤/搜索