1.mutt+msmtp的安裝
sudo dpkg -i package.deb
以下是線上安裝方式,我們可以在安裝資訊中看到有哪些依賴包,我們記住這些依賴包的名稱,到時候複製出來就好了。
bitnami@linux:/var/cache/apt/archives$ sudo apt-get install mutt [sudo] password for bitnami: Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libgpgme11 libpth20 libtokyocabinet8 Suggested packages: gpgsm urlview aspell ispell mixmaster The following NEW packages will be installed: libgpgme11 libpth20 libtokyocabinet8 mutt 0 upgraded, 4 newly installed, 0 to remove and 50 not upgraded. Need to get 1,752 kB of archives. After this operation, 5,197 kB of additional disk space will be used. bitnami@linux:~$ sudo apt-get install msmtp Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libgsasl7 libntlm0 Suggested packages: msmtp-mta The following NEW packages will be installed: libgsasl7 libntlm0 msmtp 0 upgraded, 3 newly installed, 0 to remove and 50 not upgraded. Need to get 265 kB of archives. After this operation, 1,201 kB of additional disk space will be used. Do you want to continue [Y/n]?
2.配置msmtp和mutt
2.1配置msmtp
$ sudo vim ~/.msmtp.log
配置msmtp配置檔案“.msmtprc”
#Accounts will inherit settings from this section defaults # A first gmail address account gmail host smtp.gmail.com port 587 from username@gmail.com user username@gmail.com password password tls_trust_file /etc/ssl/certs/ca-certificates.crt # A second gmail address account gmail2 : gmail from username2@gmail.com user username2@gmail.com password password2 # A freemail service account freemail host smtp.freemail.example from joe_smith@freemail.example user joe.smith password secret # A provider's service account provider host smtp.provider.example # A 126 emali account 126 host smtp.126.com port 25 from aaa@126.com auth login tls off user aaa@126.com password password logfile ~/.msmtp.log # Set a default account account default : 126
配置.msmtprc許可權,以下設定是隻給.msmtprc的所屬使用者讀和寫的許可權,其他人沒有任何許可權
$ sudo chmod 600 .msmtprc --設定配置檔案許可權
如果要檢視.msmtprc的所屬使用者,可以透過以下命令檢視,我們可以看到,.msmtprc這個檔案所屬使用者是root使用者,組是root組。
root@BJCGNMON01:~# ls -l .msmtprc -rw------- 1 root root 251 Feb 17 10:22 .msmtprc
以上設定很重要,使用什麼賬戶去呼叫msmtp,那麼該賬戶就要有對 .msmtprc檔案的讀寫許可權。
2.2配置mutt
#sudo vim ~/.muttrc set sendmail="/usr/bin/msmtp" set use_from=yes set realname="name" set from=aaa@126.com set envelope_from=yes
我只想給我當前root使用者配置mutt功能,所以使用後者。修改完畢以後也需要檢視這個檔案的讀寫許可權,當前是root賬號要使用mutt功能,那麼這個.muttrc就必須對於root賬戶有讀寫許可權。檢視許可權的方法如下:
root@BJCGNMON01:~# ls -l .muttrc -rw-r--r-- 1 root root 122 Feb 17 10:27 .muttrc
3.測試smtp的資訊
3.1msmtp測試
測試命令:
測試配置檔案:msmtp -P
測試smtp伺服器:msmtp -S
還有一種方法是在配置msmtp之前就可以進行測試,比如測試163的smtp的命令如下:
bitnami@linux:~$ msmtp --host=smtp.163.com --serverinfo SMTP server at smtp.163.com (smtp.163.gslb.netease.com [220.181.12.18]), port 25: 163.com Anti-spam GT for Coremail System (163com[20121016]) Capabilities: PIPELINING: Support for command grouping for faster transmission STARTTLS: Support for TLS encryption via the STARTTLS command AUTH: Supported authentication methods: PLAIN LOGIN This server might advertise more or other capabilities when TLS is active.
從返回資訊中我們可以看到,這個smtp是支援TLS的,驗證方式支援 PLAIN 和 LOGIN
3.2測試郵件
echo "test" |mutt -s "my_first_test" aaa@126.com
如果是多個收件人,那麼使用空格或者逗號分開即可,測試命令:
echo "test" |mutt -s "my_first_test" aaa@126.com bbb@163.com echo "test" |mutt -s "my_first_test" aaa@126.com,bbb@163.com
(PS:windows郵件客戶端blat,2014-6-23)
而對於windows下的郵件傳送客戶端blat來說,只能使用逗號分隔多個郵件列表,測試命令如下:
blat -install 163.smpt.com aaa@163.com --註冊 blat %varlogfile% -to aaa@126.com,aaa@163.com" -u "aaa" -pw "aaa" -subject "content" -attach %varlogfile% --傳送
我們上面都是將echo後面的內容作為郵件正文,也可以將郵件的內容寫在一個檔案裡面,然後將這個檔案的內容傳送出去。
touch mail.txt --建立郵件文字 vim mail.txt --編輯文字內容 this is is my first test email --文字內容
傳送郵件,下面的示例是傳送一個標題為linkmail,收件人是aaa@126.com bbb@163.com,附件是 /root/sent ,郵件內容是的mail.txt中的內容。傳送指令碼如下
mutt -s "linkmail" aaa@126.com bbb@163.com -a /root/sent </root/mail.txt
4.配置全域性的msmtp和mutt
touch /var/log/msmtp.log
為了讓所有使用者都能讀寫這個日誌檔案,我們將其許可權設定為777
chmod 777 /var/log/msmtp.log
如果要修改使用者、組、其他的單獨許可權,可以使用以下命令。u:user, g:group, o:other。
chmod u+rwx chmod g+rwx chmod o+rwx
2.建立msmtp的配置檔案/etc/msmtprc
touch /etc/msmtprc
3.配置msmtprc
#Accounts will inherit settings from this section defaults # A 126 emali account 126 host smtp.126.com port 25 from aaa@126.com auth login tls off user aaa@126.com password password logfile /var/log/msmtp.log # Set a default account account default : 126
4.配置mutt的全域性配置檔案/etc/Muttrc,在其最後加入以下資訊:
set sendmail="/usr/bin/msmtp" #根據實際情況配置,預設安裝的就是這個地址。 set use_from=yes set realname="name" set from=aaa@126.com set envelope_from=yes
5.測試
在執行測試命令的時候,會自動將郵件副本寫入到“~/sent”當中。
echo "test" |mutt -s "my_first_test" aaa@126.com
root使用者傳送郵件,郵件被儲存在/root/sent當中,enadmin賬戶傳送郵件,郵件被儲存在/home/enadmin/sent。如果是其他類似於enadmin的使用者,需要首先建立/home/username這個目錄,然後修改這個目錄的許可權。
mkdir /home/nagios
chown -R nagios.nagios /home/nagios
6.常見問題:
錯誤1:msmtp: account default not found: no configuration file available
msmtp有bug,必須手動指定對應的配置檔案
更改/etc/Muttrc中set sendmail="/usr/bin/msmtp"為set sendmail="/usr/bin/msmtp -C .msmtprc"
錯誤2:msmtp: GNU SASL: Base 64 coding error in SASL library
遇到Base64 編碼錯誤
更改~/.msmtprc中auth login
為 auth plain