搭建mutt+msmtp發信服務

各類命令行發信

mail/mailx 都試過,相對來講mailx比較方便點,發送帶附件帶郵件也很方便,例如:html

mailx -s "The Subject" -a github.png tim@abc.com < body.txt

比較頭疼帶是mailx其實有不少個版本,各個表現不一致,參見
https://stackoverflow.com/que...linux

我在測試帶服務器是CentOS 6.x,各類嘗試後沒法實現發送html格式的郵件內容,只好放棄,轉向muttgit

Mutt只是個客戶端

首次運行mutt的時候立刻會報錯。。。github

Error sending message, child exited 127 (Exec error.).

又翻閱了各類資料,mutt只是個客戶端,方便你收發郵件,須要先配置真實的發信服務,例如sendmail/msmtp等服務器

vi /etc/Muttrc.local
set sendmail="/usr/bin/msmtp"

這裏有個插曲,網上大多數教程是教你是設置爲 /usr/sbin/sendmail,奈何CentOS下面即便安裝了sendmail,也沒有sendmail這個命令,查閱了n多資料,裏面也是一個很複雜的故事,因此走向另一條路工具

yum install msmtp

咱們儘可能用yum能安裝的工具測試

配置

vi /etc/msmtprc 
account your@email.com
host    smtp.exmail.qq.com
from    redmine@far800.com
auth    login
user    your@email.com
password        密碼
account default:        your@email.com

總算遇到一個簡單的配置,配置完畢以後就能使用mutt發信了。ui

mutt  -e "set content_type=text/html" -s "html test" -a file.zip -- your@email.com < body.html

One more thing

若是你是用阿里雲,默認是禁止25端口出的,要麼用其餘端口,要麼後臺申請一下解封阿里雲

未解決難題

雖然mutt能發信,能發html格式的信,能發html格式帶附件帶信,可是怎麼能夠將附件裏面圖片插入郵件主體裏面,我一直沒找到辦法,雖然網上說mutt1.5.23版本會自動加cid,我測試了沒有成功。若是你知道怎麼弄,請告訴我。
https://stackoverflow.com/a/3...命令行

2天后我仍是用了mailsend 替代上述服務

https://github.com/muquit/mai...

git clone https://github.com/muquit/mailsend.git mailsend
cd mailsend
yum install -y openssl-devel
./configure --with-openssl=/usr/
make && make install

由於能夠內嵌圖片

-from sender@mail.com 
-to rec@mail.com 
-smtp smtp.mail.com 
-port 25 
-auth  
-user sender@mail.com 
-pass senderPassword 
-content
-type "multipart/related"  
-mime
-type text/html  
-content
-type "multipart/related" 
-mime
-type text/html 
-disposition inline 
-enc
-type "none" 
-attach "body.mailsend.html" 
-mime
-type image/png  
-enc
-type "base64"  
-disposition inline  
-content
-id "imgs_d1"  
-cs "none"  
-attach "d1.png" 
-content
-id "imgs_d2"  
-cs "none"  
-attach "d2.png" 
-content
-id "imgs_d3"  
-cs "none"  
-attach "d3.png"
相關文章
相關標籤/搜索