歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> linux腳本發送郵件 shell發送郵件(使用 msmtp+mutt+shell來實現)

linux腳本發送郵件 shell發送郵件(使用 msmtp+mutt+shell來實現)

日期:2017/3/1 18:07:23   编辑:SHELL編程
之前在Linux下使用mail命令來發送郵件,配置起來比較麻煩,需要配置sendmail的很多東西。而且還必須啟動sendmail才能保證郵件發送成功。其實我們就只要能發送郵件就可以,服務器多開個東西就等於多一個入侵的門。而且sendmail漏斗是很多的。那麼有沒有類似於foxmail,outlook這樣的郵件客戶端軟件,並且有命令行的形式,來發送郵件呢。mutt和msmtp提供了一個很好的解決方案。
開始:
這裡因為很多路徑我寫死了,所以最好按照我的安裝路徑來安裝。或者根據自己的環境修改路徑。注意後面的注釋。
因為這個我已經寫成sh文件,只要執行install.sh就可以,但是這裡不能傳附件,我就拆開寫吧,注意有2個隱藏文件。
我使用的是163的免費郵。如果你用別的,修改相應的smtp地址。後面的注釋不用復制。

復制代碼代碼如下:
mkdir -p /usr/local/msmtp/etc
vi /root/.msmtprc //注意文件名前面有個“點"
host smtp.163.com //smtp地址
tls off
auth plain
from [email protected] //從哪個郵件發出來
user meiti_jiankong //用戶名
password a#^*225*mgYjm21 //郵箱密碼
vi /root/.muttrc
set sendmail="/usr/local/msmtp/bin/msmtp" //msmtp的安裝位置。根據自己的情況改
set use_from=yes
set [email protected] //用戶名
set envelope_from=yes
vi /usr/local/msmtp/etc/msmtprc
defaults
account meiti_jiankong //用戶名
host smtp.163.com // smtp -IP
from [email protected] //用戶名
auth login
port 25
tls off
user [email protected] //用戶名
password a#^*225*mgYjm21 //密碼
account default : meiti_jiankong
logfile /usr/local/msmtp/log/msmtp.log //用戶名
以上3個文件就這樣保存,請確保用戶名、密碼、stmp的正確性。再來:
mkdir -p /usr/local/msmtp/log
echo 'set sendmail="/usr/local/msmtp/bin/msmtp"' >>/etc/Muttrc
echo "set use_from=yes" >>/etc/Muttrc
echo 'set realname="[email protected]"' >>/etc/Muttrc //這裡改成自己的郵箱
echo 'set editor="vim"' >>/etc/Muttrc
安裝軟件包msmtp
tar jxvf msmtp-1.4.21.tar.bz2
cd msmtp-1.4.21
./configure --prefix=/usr/local/msmtp
make
sleep 3
make install
sleep 3
cd ..
tar zxvf mutt-1.5.21.tar.gz
cd mutt-1.5.21
./configure --prefix=/usr/local/mutt
make
sleep 3
make install
sleep 3
cd ..
ln -s /usr/local/msmtp/bin/msmtp /usr/bin

這樣就完成了
發送命令:
/usr/local/mutt/bin/mutt -s "郵件標題" [email protected] -c 1516070****@139.com </root/jiankong_log/data.log -a /tmp/附件.txt

-s 郵件標題 緊接的是接收郵件地址 -c 抄送地址 "</root/jiankong_log/data.log "為郵件正文 -a是附件。
如果發送不成功,請檢測下配置文件。

李坤山
Copyright © Linux教程網 All Rights Reserved