2017年2月13日 星期一

利用ssmtp設置Sendmail經由Gmail寄信

即時聊天傳訊軟體在手機上屢屢出新,但很多時候還是email可靠方便。幾年前手機正在漫延這個世界時,自己想架設 Mil Server 已不容易,不但要面對 Sendmil 或 Postfix 複雜的設定,同時又要抵檔垃圾信(當然也要想辦法要其它的 Mail Server 願意收你自己架的 Mail Server 所寄出去的信),自從 Gmail 普遍之後,似乎鮮少有人會討論 Mail Server 的架設技術了。
不過地球還真的有點圓,科技突飛猛進,但感覺在2015年終後開始有點復古的走法,這只是個人感受,進入主題吧!

設定rc.conf,取消sendmail

$ sudo vi /etc/rc.conf
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

安裝SSMTP

$ cd /usr/ports/mail/ssmtp/
$ sudo make install clean
To replace sendmail with ssmtp type "make replace" or change
your /etc/mail/mailer.conf to:

sendmail    /usr/local/sbin/ssmtp
send-mail   /usr/local/sbin/ssmtp
mailq       /usr/local/sbin/ssmtp
newaliases  /usr/local/sbin/ssmtp
hoststat    /usr/bin/true
purgestat   /usr/bin/true

編譯並安裝完成後,會新增ssmtp使用者,有關作者的提示(make replace)等成功寄信後再處理。

SSMTP 組態

$ sudo cp /usr/local/etc/ssmtp/ssmtp.conf.sample /usr/local/etc/ssmtp/ssmtp.conf
#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#

root=postmaster
mailhub=smtp.gmail.com:587
AuthUser=《輸入Gmail帳號_@gmail.com》
AuthPass=《輸入Gmail帳號的密碼》
rewriteDomain=domain.com.tw #rewrite
hostname=domain.com.tw #hostname
FromLineOverride=YES
UseTLS=YES

# Use SSL/TLS certificate to authenticate against smtp host.
#UseTLSCert=YES

UseSTARTTLS=YES

# Use this RSA certificate.
#TLSCert=/usr/local/etc/ssmtp/ssmtp.pem
#Debug=YES

測試SSMTP

設定好ssmtp.conf之後,接著寄出一封測試信,請把yourmail@gmail.com換成自己的信箱。

$ vi test.mail
To: yourmail@gmail.com
From: yourmail@gmail.com
Subject: Testmessage
This is a test for sending
$ ssmtp -v yourmail@gmail.com < test.mail

開始出現寄信的畫面,等它跑完,然後去檢查信箱是否有收到測試信,如果沒收到,請再檢查看看ssmpt.conf是否有設定錯誤之處。

以ssmtp取代sendmail寄信

在安裝步驟最後說明的很清楚,就下個指令即可:

$ cd /usr/ports/mail/ssmtp
$ sudo make replace

接著就可以以舊有的寄信指令來測試

$ mail -v -s "test subject" yourmail@gmail.com

果然收到信了,很簡單的設定,收工。

活本來沒有什麼好與壞,只要你願意怎樣填滿它,它就隨同而行。


EmoticonEmoticon