現場(環境):CentOS 7.4 套件:SSMTP
原因:
一般透過linux shell發信。多半會是本機上使用root@localhost進行作業。
這樣感覺沒有很好,想換成用正常郵件發送信件。
處理方式:
以google mail做為範例。
Step 1. 安裝ssmtp
#yum install ssmtp
Step 2. 設定ssmtp檔
先備份相關設定檔
#cd /etc/ssmtp
#cp ssmtp.conf ssmtp.conf.$(date +%F)
#vim ssmtp.conf
(root、mailhub)設定值修改就好
其他沒有的要另外添加上去
這邊參考網址內有提到。
若是在CentOS裏面,TLS_CA_File 這個設定是要必要的(預設就有)。
=!====
root=[使用者帳號]@gmail.com
mailhub=smtp.gmail.com:587
Hostname= [自行定義]
AuthUser=[使用者帳號]@gmail.com
AuthPass=[使用者密碼]
FromLineOverride=YES
UseTLS=YES
UseSTARTTLS=Yes
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
====!=
修改一下寄件的套件
這邊選擇這次安裝的ssmtp
#alternatives --config mta
Step 3. 安裝寄件指令
接著安裝
# yum install mailx
在ubuntu系列是安裝mailutils
# apt-get install mailutils
安裝好mailx後。就可以用mail指令來測試看看。
#echo "Test content" | mail -s "Test subject" [收件帳號]
如果寄信時發生下列問題
send-mail: Authorization failed (534 5.7.14 https://support.google.com/mail/answer….
這樣表示你的gmail認為這是一個較低安全性的應用程式。
但也因為這樣所以沒辦法直接寄件,這邊需要調整一下。
Step 4. 設定google登入及安全性
先連結上google 郵件 的 「Google登入和安全性」
https://myaccount.google.com/intro/security?hl=zh-TW
把允許安全性較低的應用程式功能打開
產生一個FOR應用程式使用的密碼。
而這個密碼就是要取代掉我們原本的gmail登入密碼。
這個功能要有啟動兩步驟驗證,才能夠使用
接著自行定義要使用的應用程式是什什麼
名稱可以自訂,然後按下產生
接著可以看到出現一個視窗,圖片上會有隨機16碼密碼。
之後在google 帳號內就會出現for 應用程式使用的密碼。
接著就將這個密碼寫到ssmtp檔案內,就可以發送郵件。
再發送一次郵件測試看看會不會出現錯誤。
Step5. 測試
#echo "Test content" | mail -s "Test subject" [收件帳號]
沒有問題後,就到收件者信箱看看有沒收到測試信件。
這邊可以看到是由linux主機透過gmail發送信件出來。
#echo "Test content~" | mail -s "Test Subject" -a testfile.txt [收件帳號]
如果有附件檔要上傳。後面帶上-a 就可以將檔案作為附件傳送。
之後就可以透過這個方式讓gmail幫你發送信件。
<本篇完>
參考網址:
https://ithelp.ithome.com.tw/articles/10159302
http://blog.ilc.edu.tw/blog/index.php?op=printView&articleId=650615&blogId=25793
https://www.phpini.com/linux/linux-server-send-email-gmail-smtp
https://tecadmin.net/bash-mail-command-not-found/
https://blog.gtwang.org/linux/linux-send-mail-command-using-ssmtp-and-gmail/
另外附上透過postfix 發送Gmail參考文章
http://yccitman.blogspot.tw/2017/12/postfix-gmail.html