在系統管理的實務上,我們會有發送Mail來警示,
或是監控系統狀況的需求.
Linux中常見有Sendmail, Postfix等Mail Sever.
那為何還需要建立只發送的Mail Server呢?
因為Mail Server需要管理,還需要domain name.
這些都提高了管理的成本.
Mail Server也會消耗系統效能.
所以我們可以建立一個只負責發送的,而且是可以使用
外部帳號的Mail Server.
以下為使用 ssmtp,並透過指令發送Gmail的方法.
首先要安裝ssmtp,並有Gmail帳號.
登入root
到 /etc/ssmtp/ 編輯 ssmtp.conf
將原本的設定註解掉.
加入以下設定:
root=dingdabingxx@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=gmail.com
hostname=localhost
UseTLS=Yes
UseSTARTTLS=Yes
AuthUser=dingdabingxx
AuthPass=yourpasswd
FromLineOverride=yes
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
上面的例子是使用 dingdabingxx@gmail.com的帳號,
密碼當然不是這個啦.
把帳號與密碼改成對應的.記得上面的root也要改喔.
最後TLS_CA_File,若是使用CentOS,一定要加上去.
像是使用CentOS有安裝Postfix的,要作以下設定,
使用Fedora不一定會裝Postfix,若有自己安裝的,
也要做以下設定.
變更MTA:
# alternatives --config mta
有 2 程式提供 'mta'。
選擇 指令
-----------------------------------------------
* 1 /usr/sbin/sendmail.postfix
+ 2 /usr/sbin/sendmail.ssmtp
請輸入以保留目前的選擇[+],或輸入選擇號碼:
輸入2選擇 ssmtp.
接著登出root.
使用以下指令:
echo $(hddtemp /dev/sda) | mail -s "HDTemp $(date)" hitomitanaka666@gmail.com
使用一般user asami,發送 hddtemp 指令獲取硬碟溫度當內文,主題是HDTemp 帶日期時間,
給hitomitanaka666@gmail.com
如下圖所示:
有時因為資安因素或是效能因素,系統無法安裝Python等語言.
這時候就可以使用現有指令組合,透過ssmtp來做定期回報或警示等功能.
後續將會介紹一些組合的應用.
接著來看一個延遲發送的例子.
echo 'mail -s "Make Cafe" hitomitanaka666@gmail.com' | at now+5min
系統回應:
job 19 at 2014-10-11 13:18
沒有爽約,果然在13:18提醒我.
請問這樣寄出去的信件, 2020年的現在, 會被歸類為垃圾信件嗎?
這是依賴外部郵箱,例如上面是用 gmail.
一般的gmail郵箱是不能寄過多的.
若有大量或是正式的mail服務需求,這個不太適用.
這是用來監控,發出警訊,方便腳本撰寫.
或是少量的需求,方便腳本或程式撰寫,減少維護負擔.
要看你收信的Mail Server是哪一套
G-suite的話
在管理介面
有垃圾郵件白名單的選項可以編輯