天天看點

mutt+msmtp輕松實作郵件自動發送功能

由于使用telnet 25端口發送郵件丢件率較高,是以改進了發送的方式。

原先使用3種自動發送郵件的方式:

1、expect編寫一段telnet到郵件伺服器的腳本,這個方法很多伺服器是拒絕被使用的,而且丢信率太高。

2、搭建一個MTA(郵件傳輸代理),sendmail或POSTFIX都能很好的實作郵件轉發功能,缺點是隻能使用本機的mail域名發送給使用者,而且在不需要安裝MTA的伺服器上無法實作自動發送功能。

3、mutt+msmpt+shell,輕松實作郵件自動發送并且使用靈活,不需要MTA也能發送信件。

三種方案中的第三種比較适合我現在的需求。

mutt是一個MUA(郵件使用者代理),本身不負責發送郵件或接收郵件,如果需要發送郵件需要調用msmtp,msmtp是一個簡單靈活的MTA,并且設定極為友善。

使用環境:centos4.1

預設預設環境已安裝mutt1.4.1

msmpt1.4.3 從[url]http://rpm.pbone.net/index.php3/stat/4/idpl/2816543/com/msmtp-1.4.3-2.i586.rpm.html[/url]下載下傳

rpm -ivh msmtp-1.4.3-2.i586.rpm

安裝完畢後開始設定mutt和msmtp。

MUTT

系統全局設定/etc/Muttrc,如果使用某個系統使用者,可以在~/.muttrc中設定。

vi .muttrc

set sendmail="/usr/bin/msmtp -a your_account"

set realname="your_email"

set use_from=yes

set editor="vim"

MSMTP

建立~/.msmtprc和~/.msmtp.log,分别為配置和日志檔案。

vi .msmtprc

account default

host smtp.domain.com

from your_email_address

tls on

auth on

user [email][email protected][/email]

password your_password

account default : dominic

由于password是明碼,是以我們需要修改此檔案的權限。

chmod 600 .msmtprc

到這裡,你可以使用mutt來發送郵件了,我們測試一下。

echo "test" |mutt -s "my_first_test" [email][email protected][/email] -c [email][email protected][/email]

-s "subject"

-c "carbon-copy"

觀察.msmtp.log檔案,如果有錯會在日志檔案中被報告出來,當然,成功發送的日志也會出現在此日志檔案内。

到這裡發送郵件的過程已經全部完成,接下來要做的事就簡單了,我們假設每天淩晨定時發送信件給公司某使用者,可以編寫腳本處理。

mail.sh

#!/bin/sh

content="you can tell your colleague what something to do at tomorrow"

echo "$content" |mutt -s "hi Jacky" Jacky's_email

繼續閱讀