[EMail][Linux] Linux使用SSMTP來自動寄發通知信-透過Gmail
Posted On 2018-03-14
[EMail] Linux使用SSMTP來自動寄發通知信-透過Gmail
OS: Ubuntu 14.04.5 LTS
SMTP: SSMTP 2.64
首先安裝ssmtp服務和Email處理工具
apt-get install ssmtp mailutils
再來是備份原始設定檔
cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.default
編輯ssmtp設定檔(/etc/ssmtp/ssmtp.conf)
vim /etc/ssmtp/ssmtp.conf
#接收系統郵件的 Email [email protected] # 使用 GMail 的 MTA 送信 mailhub=smtp.gmail.com:587 # 設定 hostname hostname=xxxxxx # 允許使用者設定 Email 的 From 欄位 FromLineOverride=YES # Google 帳號與密碼 [email protected] AuthPass=xxxxxx # 啟用安全加密連線 UseSTARTTLS=YES UseTLS=YES # 輸出除錯資訊 Debug=YES
設定完成後就能夠使用了,測試方法如下:
echo "TEST" | mail -s "TEST" [email protected]
此步驟後半段為特殊情況出現時,才需要進行調整:
狀況1: 沒有開啟Google兩步驟驗證時,仍然無法寄信,會出現授權失敗的錯誤訊息(ssmtp: Authorization failed (530.7.0 ............gsmtp)
此情況可能發生在Google的安全性設定上,請到"Google登入和安全性"設定的網頁中,開啟"允許安全性較低的應用程式"的功能後既可解決。
狀況2: 開始Google兩步驟驗證時的處理辦法。
如果你有開啟 Google 的兩步驟驗證,那麼在使用 Google送信時,可能就會產生類似這樣的錯誤訊息(ssmtp: Authorization failed (534 5.7.9 https://support.google.com/mail/?p=InvalidSecondFactor n17sm64719796pfg.80 - gsmtp)),造成這個問題的原因是 SSMTP 沒有支援兩步驟驗證,解決的方式是改用 Google 應用程式專用的密碼來登入,以下是處理的步驟:
- 請到"Google登入和安全性"設定的網頁中,選擇"應用程式密碼"。
- 進入後產生一組新的應用程式密碼來使用,名稱可以自取。
- 把ssmtp設定檔中的Google密碼替換成這一組,其餘設定不變動,這樣就能使用了。
- Google 帳號與密碼
AuthPass=XXXXXXXXX
以上。