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 從http://rpm.pbone.net/index.php3/stat/4/idpl/2816543/com/msmtp-1.4.3-2.i586.rpm.html下載
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]user_name@domain.com[/email]
password your_password
account default : dominic
由于password是明碼,所以我們需要修改此文件的權限。
chmod 600 .msmtprc
到這里,你可以使用mutt來發送郵件了,我們測試一下。
echo "test" |mutt -s "my_first_test" [email]somebodyone@yahoo.com[/email] -c [email]somebodytwo@yahoo.com[/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
關鍵字:郵件、服務器、mutt+msmtp
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解