郵件服務器搭建
前言
本篇參考
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
允許客戶端和服務器交換角色,并在相反的方向發送郵件,而不必建立新的連接
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/67275.html
標籤:Linux
上一篇:求助帖!!!
下一篇:windows事件查看相關
