一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - Linux部署msmtp+mutt發送郵件功能

Linux部署msmtp+mutt發送郵件功能

2022-03-05 18:46霍比挫人 Linux

這篇文章主要介紹了Linux部署msmtp+mutt實現發送郵件,msmtp是一個SMTP客戶端,可將郵件發送至SMTP服務端。具體安裝步驟大家參考下本文

一、前言

首先,得明白發送一封郵件的流程,下面一段理論摘抄自廖雪峰的官網網站https://www.liaoxuefeng.com/article/00137387674890099a71c0400504765b89a5fac65728976000

"""

我們通常使用email都很容易,但是internet的郵件系統是通過幾個復雜的部分連接而成的,對于最終用戶而言,我們熟悉的outlook,foxmail等都是用來收信和發信的,稱之為mua:mail user agent,郵件用戶代理。

mua并非直接將郵件發送至收件人手中,而是通過mta:mail transfer agent,郵件傳輸代理代為傳遞,sendmail和postfix就是扮演mta的角色。

一封郵件從mua發出后,可能通過一個或多個mta傳遞,最終到達mda:mail delivery agent,郵件投遞代理,郵件到達mda后,就存放在某個文件或特殊的數據庫里,我們將這個長期保存郵件的地方稱之為郵箱。

一旦郵件到達郵箱,就原地不動了,等用戶再通過mua將其取走,就是用outlook,foxmail等軟件收信的過程。

所以一封郵件的流程是:

發件人:mua --發送--> mta -> 若干個mta... -> mta -> mda <--收取-- mua:收件人

mua到mta,以及mta到mta之間使用的協議就是smtp協議,而收郵件時,mua到mda之間使用的協議最常用的是pop3或imap。

需要注意的是,專業郵件服務商都有大量的機器來為用戶服務,所以通常mta和mda并不是同一臺服務器,因此,在outlook等軟件里,我們需要分別填寫smtp發送服務器的地址和pop3接收服務器的地址。

"""

同樣對發郵件流程介紹的很清楚的還有這篇博文:https://www.cnblogs.com/dlhe/p/8457393.html

由上面可知,通常我們所熟悉的outlook、foxmail等是郵件客戶端,提供了mua的功能;而一些email服務提供商,如網易、qq等,則提供了mta的功能。

必須弄清楚的一點是,本次部署的msmtp+mutt其實是類似于foxmail那樣的mua郵件客戶端,只不過它是在linux上運行的。而如果在linux上部署的是sendmail或者postfix,那才是郵件服務器,起到的是mta的功能。

接下來是實施步驟。

實測成功的部署環境:rhel6.5和centos6.5,當然了,機器得能聯網。

二、安裝msmtp

msmtp是一個smtp客戶端,可將郵件發送至smtp服務端,官網地址為 http://msmtp.sourceforge.net/index.html   。

1.下載msmtp文件

cd /usr/local/src

wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2/download

2.解壓文件

tar jxvf msmtp-1.4.32.tar.bz2

3.進入到解壓的文件內,然后就是典型的源碼安裝的3個步驟./configure,make和make install

3.1執行./configure,生成 makefile,為下一步的編譯做準備,--prefix=后面接的是想要將msmtp安裝到的路徑,跟當前mstmp源碼所在目錄無關

?
1
2
cd msmtp-1.4.32
./configure --prefix=/usr/local/msmtp

Linux部署msmtp+mutt發送郵件功能

Linux部署msmtp+mutt發送郵件功能

3.2 make && make install,編譯并安裝,這兩步也可以分開執行

Linux部署msmtp+mutt發送郵件功能

Linux部署msmtp+mutt發送郵件功能

4. 在安裝目錄/usr/local/msmtp/下新建etc目錄,并在etc目錄下創建msmtp文件,該文件用于配置郵件發送的一些基本信息。

?
1
2
3
4
5
6
7
8
9
10
11
12
mkdir –p /usr/local/msmtp/etc
vim /usr/local/msmtp/etc/msmtprc
#添加如下內容:
account default
host smtp.163.com  
port 25
from [email protected] //按照實際情況填寫真實的163郵箱
auth login
tls off
user xxx  //郵箱用戶名,是xxx而不是[email protected] 
password xxx //需要注意的是這里的密碼有可能是授權碼,比如163郵箱的話這里就必須填授權碼,如下圖 
logfile /var/log/mmlog

Linux部署msmtp+mutt發送郵件功能

注:正如前面所說的,msmtp+mutt的組合跟foxmail一樣,是郵件客戶端。我們知道,windows下利用foxmail發送郵件的話,當然首先需要用你的某個賬號登錄上foxmail了,然后才能在該客戶端下新建郵件發送。那么這一步該文件配置的作用,我的理解就是在linux下用你的某個賬號登錄msmtp客戶端。這里我用的是163網易郵箱,若是想用qq郵箱,則需要另行修改。

測試時的配置如下:

Linux部署msmtp+mutt發送郵件功能

(注:截圖當中的目錄有點混亂,是實際生產環境中部署的安裝目錄,不是上面執行./configure命令時--prefix參數指定的/usr/local/msmtp,不過沒關系,只要記住,該文件實際是在prefix參數指定的安裝目錄下的!)

5. 給日志文件賦權限:

?
1
chmod 777 /var/log/mmlog

6.給配置文件msmtprc文件賦權限,因為該文件中有郵箱的明文密碼,所以要設置成非可讀的。

?
1
chmod 600 msmtprc

7.此時可以 /usr/bin/目錄做一個關于/usr/local/msmtp/bin/msmtp的軟連接,這樣在服務器上任意位置都可以直接敲msmtp命令來執行msmtp

?
1
ln -s /usr/local/msmtp/bin/msmtp /usr/bin/msmtp

8.測試msmtp(同樣的,郵箱地址視實際情況而定,不過必須得跟上面的/usr/local/msmtp/etc/msmtprc配置文件中的郵箱相同)

(1)若沒做第7步的軟連接,則是:

?
1
/usr/local/msmtp/bin/msmtp [email protected] hello,test ctrl d

(2)若做了軟連接,那么測試的命令可以為:

?
1
2
3
msmtp [email protected] hello,test ctrl d
# 查看日志有無成功 cat /usr/local/msmtp/msmtp.log
# 查看163郵箱,看看信收到沒有。

如下圖,這時候能收到郵件,但是郵件是沒有內容的,這是沒有問題的。

至此,msmtp安裝已經完成了。

Linux部署msmtp+mutt發送郵件功能

三、安裝mutt

mutt是一個email客戶端,它不能直接發送郵件,更多的是承擔對email的管理功能,與msmtp可搭配使用。官網地址為http://www.mutt.org/

若想了解更多Mutt與msmtp的搭配使用,可查看如下地址:http://msmtp.sourceforge.net/doc/msmtp.html#Using-msmtp-with-Mutt

1.mutt安裝方法一:yum方式安裝配置mutt(實測成功)

1.1yum install -y mutt

1.2編輯/etc/muttrc文件 (注,/etc目錄下應該已經存在muttrc文件,只是在文件末尾追加下面內容)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
vim /etc/muttrc
#輸入如下內容:
set sendmail='/usr/bin/msmtp' #注:之所以能這么寫是因為在配置msmtp時做了軟連接 #ln -s /usr/local/msmtp/bin/msmtp /usr/bin/msmtp
set use_from=yes
set realname='yourname'  #realname可以任意設置,這樣當你發郵件給別人的時候,收件人看到發件人的title就是你這里設置的,具體可以看下面的設置和最后圖片展示的結果
envelope_from=yes
auto_view text/html
set charset='utf-8'
set send_charset='utf-8'
set locale ='zh_cn.utf-8'
set content_type = 'text/html\;charset=utf-8'
set rfc2047_parameters=yes

實測時的配置如下:

Linux部署msmtp+mutt發送郵件功能

但是做發送郵件測試時粗錯了,確實能發郵件,但是執行完發送命令之后報錯:source: errors in /etc/muttrc,因此改成下面

?
1
2
3
4
5
set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="zabbix server"
set editor="vim"

Linux部署msmtp+mutt發送郵件功能

1.3 配置完畢,測試:

(1)簡單測試(發給自己):echo  "test測試test"|mutt -s "dt_zabbix_server_test"  [email protected]

Linux部署msmtp+mutt發送郵件功能

(2)添加附件測試(發給自己):echo  "內容:test測試test"|mutt -s "主題:dt_zabbix_server_test" -a /data/suxy_remark.txt

發送錯誤,報錯:Can't stat [email protected]: No such file or directory

如下圖所示,這是因為[email protected]在-a命令后面,所以mutt把[email protected]也當成附件了,因此將-a命令調換個位置,放到末尾(事實上該命令的用法也確實要求-a參數放到命令的最末尾):

echo  "內容:TEST測試test"|mutt   -s "主題:DT_ZABBIX_SERVER_TEST"    [email protected] -a /data/suxy_remark.txt

發送成功!

事實上還可以使用如下命令,即mutt后面先寫郵箱,將-s、-a等參數都放到后面去

echo  "內容:TEST測試test"|mutt [email protected] -s "主題:DT_ZABBIX_SERVER_TEST" -a /data/readme.txt

Linux部署msmtp+mutt發送郵件功能

(3)當然也可以發送郵件給其他的類型的郵箱,比如qq郵箱,公司郵箱等:

echo  "內容:test測試test"|mutt -s "主題:dt_zabbix_server_test" [email protected]  -a /usr/local/suxy_remark.txt

Linux部署msmtp+mutt發送郵件功能

2.mutt安裝方法二:源碼方式安裝mutt(測試時沒有成功,不過應該是測試做法不對。。)

?
1
2
3
4
5
cd /usr/local/src
wget ftp://ftp.mutt.org/pub/mutt/mutt-1.5.24.tar.gz
tar xvf mutt-1.5.24.tar.gz
cd mutt-1.5.24
./configure --prefix=/usr/local/mutt

Linux部署msmtp+mutt發送郵件功能

Linux部署msmtp+mutt發送郵件功能

make && makeinstall

Linux部署msmtp+mutt發送郵件功能

配置mutt

?
1
2
3
4
5
6
7
vim /usr/local/mutt/etc/muttrc
#在最后添加如下幾行:
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="xxx"
set envelope_from=yes

測試mutt

echo "hello,world"|/usr/local/mutt/bin/mutt –s "test mail" [email protected]#上述語句將發送一封標題為"test mail",內容為"hello,world",收件人為[email protected]的郵件,可檢查該郵箱能否收到郵件

實際測試時使用的命令:

?
1
echo "test from zabbix server"|/usr/local/mutt/bin/mutt –s "zabbixtest" [email protected]

但是若是使用上面的命令發送的話則會給[email protected][email protected][email protected]都各發一封郵件,改為如下的命令則會只給182發送,但是沒有主題

?
1
echo "test from zabbix server"|/usr/local/mutt/bin/mutt [email protected]

總結

以上所述是小編給大家介紹的linux部署msmtp+mutt發送郵件功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://www.cnblogs.com/suhaha/archive/2018/03/27/8655033.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 视频精品一区二区三区 | 91大神第九部红酒气质女 | 午夜AV国产欧美亚洲高清在线 | 国产欧美日韩综合 | 久久影院中文字幕 | jizzjizz3d动漫| 日本视频在线观看 | 国产综合成色在线视频 | 亚洲一区二区三区福利在线 | 精品亚洲视频在线观看 | 日韩精品免费一区二区三区 | 成人高辣h视频一区二区在线观看 | 美女沟厕撒尿全过程高清图片 | 日产2021免费一二三四区 | 亚洲美女aⅴ久久久91 | 免费特黄视频 | 视频在线精品 | 国产一区二区免费视频 | 国产传媒在线播放 | 性欧美sexvideo另类 | 小早川怜子亚洲综合中文字幕 | 美国69xxxx59| 深夜激情网 | 91精品久久 | 欧美午夜性春猛交bbb | 99久久精品免费精品国产 | 古装一级无遮挡毛片免费观看 | 免费xxxx日本大片在线观看 | 日韩免费 | 别停好爽好深好大好舒服视频 | 亚洲AV久久无码精品九号软件 | 天天干天天操天天碰 | 乌克兰精品摘花处破 | www一级片 | 亚洲国产精品婷婷久久久久 | 精品久久日日躁夜夜躁AV | 91原创国产 | 美女扒开屁股让男人进去 | 奇米影视7777久久精品 | 奇米777狠狠| 精品精品国产自在久久高清 |