郵件伺服器搭建 前言 本篇參考 https://blog.51cto.com/5001660/2377785 一個電子郵件系統應具有的三個主要組成構件,這就是用戶代理、郵件伺服器 ,以及郵件發送協議(如SMTP)和郵件讀取協議(如POP3)。POP3是郵局協議 (Post Office Protoc ...
郵件伺服器搭建
前言
本篇參考
https://blog.51cto.com/5001660/2377785
一個電子郵件系統應具有的三個主要組成構件,這就是用戶代理、郵件伺服器 ,以及郵件發送協議(如SMTP)和郵件讀取協議(如POP3)。POP3是郵局協議 (Post Office Protocol)版本3
用戶代理 UA(User Agent)就是用戶與電子郵件系統的介面,在大多數情況下它就是運行在用戶電腦中的一個程式。因此用戶代理又稱為電子郵件客戶端軟體 。用戶代理向用戶提供一個很友好的介面(目前主要是視窗界面)來發送和接收郵件。現在可供大家選擇的用戶代理有很多種。例如,微軟公司的Outlook Express和我國張小龍製作的Foxmail,都是很受歡迎的電子郵件用戶代理。
郵件傳輸過程
➊發件人調用電腦中的用戶代理撰寫和編輯要發送的郵件。
➋ 發件人點擊屏幕上的“發送郵件”按鈕,把發送郵件的工作全都交給用戶代理來完成。用戶代理把郵件用SMTP協議發給發送方郵件伺服器,用戶代理充當SMTP客戶,而發送方郵件伺服器充當SMTP伺服器。用戶代理所進行的這些工作,用戶是看不到的。有的用戶代理可以讓用戶在屏幕上看見郵件發送的進度顯示。用戶所使用的郵件伺服器究竟在什麼地方,用戶並不知道,也不必要知道。實際上,用戶在把寫好的信件交付給用戶代理後,就什麼都不用管了。
➌ SMTP伺服器收到用戶代理髮來的郵件後,就把郵件臨時存放在郵件緩存隊列中,等待發送到接收方的郵件伺服器(等待時間的長短取決於郵件伺服器的處理能力和隊列中待發送的信件的數量。但這種等待時間一般都遠遠大於分組在路由器中等待轉發的排隊時間)。
➍ 發送方郵件伺服器的SMTP客戶與接收方郵件伺服器的SMTP伺服器建立TCP連接,然後就把郵件緩存隊列中的郵件依次發送出去。郵件不會在互聯網中的某個中間郵件伺服器落地 。如果SMTP客戶還有一些郵件要發送到同一個郵件伺服器,那麼可以在原來已建立的TCP連接上重覆發送。如果SMTP客戶無法和SMTP伺服器建立TCP連接(例如,接收方伺服器過負荷或出了故障),那麼要發送的郵件就會繼續保存在發送方的郵件伺服器中,併在稍後一段時間再進行新的嘗試。如果SMTP客戶超過了規定的時間還不能把郵件發送出去,那麼發送郵件伺服器就把這種情況通知用戶代理。
➎ 運行在接收方郵件伺服器中的SMTP伺服器進程收到郵件後,把郵件放入收件人的用戶郵箱中,等待收件人進行讀取。
➏ 收件人在打算收信時,就運行電腦中的用戶代理,使用POP3(或IMAP)協議讀取發送給自己的郵件。
以上摘錄於《電腦網路》
郵件伺服器的搭建
centos7下使用postfix+dovecot搭建郵件伺服器(防火牆關閉,SELinux關閉下)
DNS伺服器搭建
yum install bind bind-utils
查看是否安裝成功
[root@localhost ~]# rpm -qa|grep bind
編輯主配置文件
[root@localhost ~]# vim /etc/named.conf
新建區域配置文件,新建的文件名要與include包含的文件名一至,且許可權一至
編輯配置文件
配置正向查找區域,配置文件/var/named/named.mail.com,複製後的許可權必須一至
配置反向查詢文件
開啟服務
如果報錯請檢查配置文件及許可權
測試DNS
設置功能變數名稱解析伺服器為自己
搭建郵件伺服器
配置伺服器主機名稱,需要保證伺服器主機名稱與發信功能變數名稱保持一致
重啟生效,記得重啟功能變數名稱服務及關閉防火牆
postfix
介紹:postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟體
安裝
yum install postfix
配置配置文件
vim /etc/postfix/main.cf
第83行,修改保存郵件的功能變數名稱稱
第99行,修改寄出郵件的功能變數名稱稱
第116、119行,修改定義的網卡監聽地址
第164行,修改定義的可接收郵件的主機名或功能變數名稱列表
新建兩個用戶用於測試
dovecot
介紹:dovecot是一款能夠為Linux系統提供IMAP和POP3電子郵件服務的開源軟體程式
yum install dovecot
編輯配置文件
vim /etc/dovecot/dovecot.conf
設置dovecot服務程式支持的電子郵件協議
允許用戶使用明文進行密碼驗證
設置允許登錄的網段地址
配置郵件格式和儲存路徑
vim /etc/dovecot/conf.d/10-mail.conf
開啟服務
[root@mail ~]# systemctl start postfix
[root@mail ~]# systemctl start dovecot
可以看到郵件的存放位置,這是未發郵件前
發件測試
[root@mail mail]# telnet mail.com 25
Trying 127.0.0.1...
Connected to mail.com.
Escape character is '^]'.
220 mail.com ESMTP Postfix
helo mail.com 聲名本機
250 mail.com
mail from:[email protected] 聲明發件人
250 2.1.0 Ok
rcpt to:[email protected] 聲明收件人
250 2.1.5 Ok
data 寫正文
354 End data with <CR><LF>.<CR><LF>
user1
. 正文結束標記
250 2.0.0 Ok: queued as 12A27206C86E
quit 退出
221 2.0.0 Bye
Connection closed by foreign host.
發件後,可以看到user2已經收到郵件
看一下內容
也可以登錄查看郵件
[root@mail mail]# telnet mail.com 110
Trying 127.0.0.1...
Connected to mail.com.
Escape character is '^]'.
+OK Dovecot ready.
user user2 用戶
+OK
pass 54321 密碼
+OK Logged in.
list 列表查看郵件
+OK 1 messages:
1 380
.
retr 1 讀取編號為1的郵件
遇到的問題
1、賬號密碼正確因許可權問題被拒絕
報錯
-ERR [SYS/PERM] Permission denied
Connection closed by foreign host.
解決
[root@mail mail]# chmod 0600 /var/spool/mail/*
埠介紹
SMTP 簡單郵件傳輸協議 TCP 25埠 ,加密時使用TCP 456埠
POP3 第三版郵局協議 TCP 110埠 ,加密時使用955埠
IMAP4 第四版互聯網消息訪問協議 TCP 143埠 , 加密時使用993埠
防火牆開啟情況下允許埠通過
firewall-cmd -add-port 25/tcp --permanent
firewall-cmd -add-port 465/tcp --permanent
firewall-cmd -add-port 110/tcp --permanen
firewall-cmd -add-port 995/tcp --permanent
firewall-cmd -add-port 143/tcp --permanent
firewall-cmd -add-port 993/tcp --permanent
firewall-cmd --reload 重啟防火牆
SMTP相關命令
helo
客戶端為標識自己的身份而發送的命令(通常帶功能變數名稱)
mail from
標識郵件的發件人;以 mail from: 的形式使用
rcpt to
標識郵件的收件人;以 rcpt to: 的形式使用
data
客戶端發送的,用於啟動郵件內容傳輸的命令
turn
允許客戶端和伺服器交換角色,併在相反的方向發送郵件,而不必建立新的連接