Linux 下如何用 mutt 設定郵件報警

jaty0817發表於2016-05-02

在Linux裡,很多人都會使用到郵件報警,而且這方面的軟體也眾多,常見的像SendMail, sendEmail, Postfix等等,它們的優缺點我就不說了,使用上也各有所愛。

今天我要給大家介紹的mutt,也許大家也不陌生,網上太多關於mutt和sendmail或者跟msmtp合作使用的教程。其實,mutt非常的強大隻要你仔細研究一下官方文件

系統環境:CentOS 6.5

0、在正式安裝mutt之前

先檢查一下兩個安全元件。

OPENSSL:

openssl version -a #檢查安裝及版本資訊

SASL(系統一般已經自帶):

rpm -qa | grep sasl

查詢到如下即可:

cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-2.1.23-15.el6_6.2.x86_64

如果sasl沒有執行,先啟動:

/etc/init.d/saslauthd start

最好是加入到自啟動專案中去:

chkconfig saslauthd on

因為傳送郵件的時候會需要用到安全認證。

1、安裝

官方網站上下載最新版本。

# 解壓後進入mutt目錄
cd /root/mutt-1.6.0

# 編譯:
./configure --prefix=/usr/local/mutt --enable-pop --enable-smtp --with-ssl --with-sasl
# 說明
--enable-pop 啟用pop
--enable-smtp 啟用smtp
--with-ssl --with-sasl 在啟用上述協議的情況下,必須使用更安全的加密

PS: 因為我用的測試帳號是QQ郵件,qq郵件使用smtp協議的時候要求必須使用ssl安全連線,而在mutt裡使用安全連線又必須使用sasl加密,所以上述2個安全元件在編譯安裝的時候得加上。要不然傳送郵件的時候會出現“SMTP authentication requires SASL”或者另外一個跟ssl有關的錯誤。

# 安裝
make && make install

2、配置檔案

方法1:

安裝好後,複製一份安裝目錄下/usr/local/mutt/etc/的配置檔案Muttrc到/root/.muttrc,也可以直接修改配置檔案,設定讀取的配置檔案路徑到安全目錄,這樣就無需複製了。

預設設定: 

set alias_file="~/.muttrc"

方法2:

cat /usr/local/mutt/etc/Muttrc | grep -v ^# | grep -v ^$ > ~/.muttrc

這樣都可以得到預設的配置檔案資訊。

安裝完成後,我們僅需要設定的資訊如下:

set folder="./Mail" #設定本地的收件箱,如果不設定傳送郵件的時候會提示
set from="123456789@qq.com" #設定發件人地址
set realname="張三" #發件人姓名
set smtp_pass="999999" #密碼
set smtp_url="smtps://123456789@smtp.qq.com:465/" #發件人帳號和郵件主機資訊,QQ郵箱必須使用安全連線
set use_envelope_from=yes #使用自定義發件人郵箱
set use_from=yes #使用自定義發件人姓名

3、測試

mutt-1.6版本的傳送郵件的語法跟1.4版本有些微的差別,具體命令如下:

mutt -s "Title使用" -a /usr/local/mutt/content.txt -- rep@shoujianren.com < /root/1

說明

-s 郵件標題

-a 附件

-- 後面跟上收件人資訊

< 後面是郵件正文內容,也可以在前面echo xxx的形式給出。如下:

echo xxx|mutt -s "Title使用" -a /usr/local/mutt/content.txt -- rep@shoujianren.com

看吧,無需與其它軟體合作,mutt就可以獨立完成傳送郵件,當然,接收也沒問題,只是在郵件報警這個需求上用不著。

其中一個錯誤資訊:

[root@x63 mutt]# echo "Hello" | mutt -s "Title" -- xxx@xxxx.com
TLSv1.2 connection using TLSv1/SSLv3 (AES256-SHA256)
SMTP authentication requires SASL
Could not send the message.

這是認證失敗了。

傳送成功的資訊:

[root@x63 mutt]# echo "Hello3" | mutt -s "Title" -- xxx@xxxx.com
TLSv1.2 connection using TLSv1/SSLv3 (AES256-SHA256)

相關文章