iT邦幫忙

DAY 11
3

蠻可愛的指令與程式系列 第 11

建立只發送Mail的Mail Server

在系統管理的實務上,我們會有發送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提醒我.


上一篇
獨一無二
下一篇
將操作過程紀錄下來
系列文
蠻可愛的指令與程式30

2 則留言

0

超實用的啦

0
cool21540125
iT邦新手 5 級 ‧ 2020-03-19 18:09:39

請問這樣寄出去的信件, 2020年的現在, 會被歸類為垃圾信件嗎?

這是依賴外部郵箱,例如上面是用 gmail.
一般的gmail郵箱是不能寄過多的.
若有大量或是正式的mail服務需求,這個不太適用.
這是用來監控,發出警訊,方便腳本撰寫.
或是少量的需求,方便腳本或程式撰寫,減少維護負擔.

要看你收信的Mail Server是哪一套
G-suite的話
在管理介面
有垃圾郵件白名單的選項可以編輯

我要留言

立即登入留言