Linux配置msmtp+mutt傳送郵件(可放在指令碼中定時傳送郵件)

zhaokonglei發表於2015-02-05

做為一名運維
DBA,要寫一些監控指令碼或分析指令碼,並把結果每天定時傳送到郵箱中,來提高工作效率。Linux系統下有許多的開源軟體可以採用命令的方式來傳送郵件, 我比較推薦用msmtp+mutt方式來傳送郵件

. msmtpmutt簡介:

msmtp是一個開源的SMTP客戶端,它負責傳輸郵件到SMTP伺服器。

mutt是一款功能強大的基於文字介面的E-Mail Client程式,可以用它來讀寫、回覆、儲存郵件,當然也可以在郵件中新增附件,它需要和msmtp配合使用,官網地址

. msmtp安裝及配置

1.下載及安裝

網上下載地址很多,這裡提供一個

(這是1.4.30版的,最新版應該是1.6.1

下載下來後解壓:

$tar xvf msmtp-1.4.30.tar.bz2

$cd msmtp-1.4.30

$./configure --prefix=/usr/local/msmtp

$make

$make install

2   配置msmtp

msmtp配置檔案有兩種,一類是系統配置檔案,一類是使用者配置檔案,配置一個即可

系統配置檔案為/usr/local/msmtp/etc/msmtprc (etc目錄和msmtprc檔案要手工建立)

使用者配置在使用者家目錄下 ~/.msmtprc (只對本使用者生效,也要手工建立)

配置檔案用於配置郵件傳送的一些基本資訊,這裡對使用者配置檔案做個簡單的配置:

$vi ~/.msmtprc

defaults                                           //表示設定預設值

logfile /usr/local/msmtp/msmtp.log  //指定日誌檔案

account zhao                                  //設定賬號

host smtp.163.com                         //SMTP郵件伺服器地址        

auth plain                                     //指定認證方式

user zhao                                    //指定使用者名稱

from                    //傳送的郵件Email

password 123456                      //指定密碼

因為密碼是名文的,所以使用者配置檔案的讀定許可權必須為600

chmod 600 ~/. msmtprc

三、mutt的安裝與配置

1. mutt安裝

一般Linux都會預設安裝mutt,可用命令查下rpm -qa|grep mutt whereis mutt看下相關路徑

如果沒有安裝可以使用 # yum install mutt安裝下,或去官網()下載原始碼安裝,這裡不再多做介紹

2. mutt配置

mutt配置檔案也有兩類,一類是系統配置檔案(/etc/Muttrc),一類是使用者配置檔案(~/.muttrc,要手工建立)
我這裡配置使用者配置檔案 ,配置比較簡單,不再詳述,新增如下內容即可

vi ~/.muttrc

set sendmail="/usr/local/msmtp/bin/msmtp"

set use_from=yes

set envelope_from=yes

set realname="dba"

set

3.傳送郵件

配置完成後,發封郵件測試下:

mutt -s " testdba" -a /home/oracle/check.log zhaoxxx@163.com < /tmp/1.txt

-s 後面testdba 為郵件主題

-a 後面/home/oracle/check.log為附件

zhaoxxx@163.com為收件人郵箱

/tmp/1.txt 檔案中的內容為郵件正文內容

去郵箱看下,應該收到了一封標題為testdba的郵件
可以把這條命令放在shell指令碼中,加入crontab,每天定時將監控結果傳送郵件到郵箱

4.報錯處理

如果傳送報錯,一般是配置檔案配置有誤,可用下面的辦法檢測下

mutt –s “testdba” zhaoxxx@163.com

然後會提示輸入標題、正文,這時會出現詳細的錯誤資訊,可看到是什麼問題導致的,

如:提示msmtp: account default not found: noconfiguration file available

很明顯是因為無法載入預設的default使用者

解決辦法:

在muttrc配置檔案中,將sendmail配置改為

set sendmail=/usr/local/msmtp/bin/msmtp –C ~/.msmtprc”即可

附:mutt常用引數

-a<檔案>

在郵件中加上附加檔案。

-b<地址>

指定密件副本的收信人地址。

-c<地址>

指定副本的收信人地址。

-f<郵件檔案>

指定要載入的郵件檔案。

-F<配置檔案>

指定mutt程式的設定檔案,而不讀取預設的.muttrc檔案。

-h

顯示幫助。

-H<郵件草稿>

將指定的郵件草稿送出。

-i<檔案>

將指定檔案插入郵件內文中。

-m<型別>

指定預設的郵件信箱型別。

-n

不要去讀取程式培植檔案(/etc/Muttrc)

-p

mutt中編輯完郵件後,而不想將郵件立即送出,可將該郵件暫緩寄出。

-R

以只讀的方式開啟郵件檔案。

-s<主題>

指定郵件的主題。

-v

顯示mutt的版本資訊以及當初編譯此檔案時所給予的引數。

-x

模擬mailx的編輯方式。

-z

-f引數一併使用時,若郵件檔案中沒有郵件即不啟動mutt

 以上引數內容摘自網路

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29702473/viewspace-1427563/,如需轉載,請註明出處,否則將追究法律責任。

相關文章