[RHEL] RHEL7.0 下 Postfix + Dovecot 实现邮件发送
RHEL7.0 下 Postfix + Dovecot 實現(xiàn)郵件發(fā)送
一、前言
大家都對郵件服務(mail service)很感興趣嘛。我在自己 博客站 預言了自己會實戰(zhàn)一次,訪問量一天到十幾(畢竟平常一篇寫好的文章幾天后才有十幾的閱讀量)。
那么我們就開始吧,講下幾個流程。
- 什么是郵件服務
- 相關服務協(xié)議
- 套件解決方案
- 搭建流程
- 配置DNS服務(僅演示)
- 配置postfix
- 配合dovect
- 服務測試
- 幾種測試工具
- 測試方法思路
- 其他
二、介紹
了解:什么是郵件服務
電子郵件,又稱電子郵箱,簡稱電郵,是指一種由一寄件人將數(shù)字信息發(fā)送給一個人或多個人的信息交換方式,一般會通過互聯(lián)網(wǎng)或其他電腦網(wǎng)絡進行書寫、發(fā)送和接收信件,目的是達成發(fā)信人和收信人之間的信息交互。一些早期的電子郵件需要寄件人和收件人同時在線,類似即時通信。
當你需要發(fā)送郵件的時候。Client 與Mail Server開始建立通信,后者幫助該郵件進行投送(DNS query And Router send)。
提示:在上圖中,我將Server的倆個協(xié)議拆開了。一是方便下文進行介紹,二個其實也可以做中心化管理。即:Server僅將郵件中繼至smtp郵件服務器,查詢時候去imap查找或直接位于imap服務器中進行查看。但本文還是全部做在一次,非中心化解決方案(架構師)。
代理:Email agent
- MTA Mail Transport Agent
- MDA Mail Delivery Agent
- MUA Mail User Agent
怎么理解這件事情呢?那我們現(xiàn)實世界快遞做比喻。
Mail Transport Agent:郵件運送代理,可以理解為快遞小哥從 MUA 手里接到了快遞。
Mail Delivery Agent:郵件投遞代理,理解為經(jīng)傳多名快遞小哥,終于到達你家小區(qū)的郵遞箱。
Mail User Agent:郵件用戶代理(user agent -> UA),這封信是由寄件人寄出的,現(xiàn)在收件人要收件了。
大致是這樣的一個過程。我在網(wǎng)上找到一張圖,分享下:
協(xié)議:郵件服務協(xié)議
在MTA中有這個協(xié)議:
簡單郵件傳輸協(xié)議 (Simple Mail Transfer Protocol, SMTP) 是事實上的在Internet傳輸email的標準。 SMTP是一個相對簡單的基于文本的協(xié)議。在其之上指定了一條消息的一個或多個接收者(在大多數(shù)情況下被確認是存在的),然后消息文本會被傳輸??梢院芎唵蔚赝ㄟ^telnet程序來測試一個SMTP服務器。SMTP使用TCP端口25。要為一個給定的域名決定一個SMTP服務器,需要使用MX (Mail eXchange) DNS。在MDA中有這倆個協(xié)議:
- POP3(郵局協(xié)議),兩者中較老的一種,用于檢索電子郵件,并在某些情況下將其副本留在服務器上。
- IMAP(互聯(lián)網(wǎng)信息訪問協(xié)議),用于協(xié)調多個電子郵件客戶端的電子郵件狀態(tài)(讀取,刪除,移動)。使用IMAP,每條消息的副本都會保存在服務器上,以便完成此同步任務。
剛剛說了MUA,那么就不能說是協(xié)議了。那是一個工具了:
- 微軟的Outlook
- 網(wǎng)易的郵件大師
- 騰訊的Q郵
- webmail
三、套件解決方案
Postfix:
- Postfix 是 RHEL7 的默認郵件服務器
- Poxtfix 易于配置,主配置文件為/etc/postfix/main.cf
- BTW:查看郵件隊列 postqueue -q,清空隊列 postqueue -f
Dovecot:
- 一個IMAP和POP3服務器
- 支持本地遞送代理
四、搭建流程
1、搭建 DNS 服務
注意:如果出現(xiàn),“*** Can't find 137.80.168.192.in-addr.arpa.: No answer”
解決:檢查 “named.conf” 中反向解析中的 “80.136.192.in-addr-arpa” 是否正確。
2、添加 MX 記錄
[root@dns named]# tail 137.80.168.192.in-addr.arpa example.com.zone ==> 137.80.168.192.in-addr.arpa <==20171125; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum @ IN NS dns.example.com. 137 IN MX 5 dns.example.com. 137 IN MX 10 dns.example.com. 137 IN PTR dns.example.com. 137 IN PTR mail.example.com.==> example.com.zone <==1D ; refresh1H ; retry1W ; expire3H ) ; minimum @ IN NS dns.example.com. dns IN A 192.168.80.137mail IN A 192.168.80.137 mail IN MX 5 192.168.80.137 mail IN MX 10 192.168.80.137 [root@dns named]#3、配置 postfix
postconf -e "inet_interfaces = all" postconf -e "mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128" ? 使 postfix 處理全網(wǎng)郵件: postconf -e "myorigin = example.com" ? 使 postfix 將發(fā)件人統(tǒng)一標示為公司域 postconf -e "mydestination = example.com" /* 留空則不接收郵件 */ postconf -e "local_transport=error: local delivery disabled" ? 禁止 postfix 投遞郵件到本地賬戶4、配置 dovect
未完,請保存本頁。不定期更新
參考
維基百科
網(wǎng)易:IMAP和POP3有什么區(qū)別
CCM論壇:Funzionamento della posta elettronica (MTA, MDA, MUA)
轉載于:https://www.cnblogs.com/itxdm/p/Postfix_Dovecot_RHEL7_mail_delivery.html
總結
以上是生活随笔為你收集整理的[RHEL] RHEL7.0 下 Postfix + Dovecot 实现邮件发送的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数据挖掘Hello Worl
- 下一篇: C# MBG 扩展方法类库 分享