您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關postfix郵件的接收和投遞過程是怎樣的,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。試圖更快、更容易管理、更安全,同時還與sendmail保持足夠的兼容性。postfix郵件收發和投遞過程更是具有人性化。
一、接收郵件的過程
當postfix接收到一封新郵件時,新郵件在incoming隊列處停留,然后針對不同的情況進行不同的處理:
1.對于來自于本地的郵件:sendmail進程負責接收來自本地的郵件放在maildrop隊列中,然后pickup進程對maildrop中的郵件進行完整性檢測。maildrop目錄的權限必須設置為某一用戶不能刪除其他用戶的郵件。
2.對于來自于網絡的郵件:smtpd進程負責接收來自于網絡的郵件,并且進行安全性檢測。可以通過UCE(unsolicitedcommercialemail)控制smtpd的行為。
3.由postfix進程產生的郵件:這是為了將不可投遞的信息返回給發件人。這些郵件是由bounce后臺程序產生的。
4.由postfix自己產生的郵件:提示postmaster(也即postfix管理員)postfix運行過程中出現的問題。(如SMTP協議問題,違反UCE規則的記錄等等。)關于cleanup后臺程序的說明:
cleanup是對新郵件進行處理的***一道工序它對新郵件進行以下的處理:添加信頭中丟失的Form信息;
為將地址重寫成標準的user@fully.qualified.domain格式進行排列;
重信頭中抽出收件人的地址;
將郵件投入incoming隊列中,并請求郵件隊列管理進程處理該郵件;
請求trivial-rewrite進程將地址轉換成標準的user@fully.qualified.domain格式。
二、投遞郵件的過程
新郵件一旦到達incoming隊列,下一步就是開始投遞郵件,postfix投遞郵件時的處理過程如圖三所示。相關的說明如下:郵件隊列管理進程是整個postfix郵件系統的心臟。它和local、smtp、pipe等投遞代理相聯系,將包含有隊列文件路徑信息、郵件發件人地址、郵件收件人地址的投遞請求發送給投遞代理。隊列管理進程維護著一個deferred隊列,那些無法投遞的郵件被投遞到該隊列中。除此之外,隊列管理進程還維護著一個active隊列,該隊列中的郵件數目是有限制的,這是為了防止在負載太大時內存溢出。郵件隊列管理程序還負責將收件人地址在relocated表中列出的郵件返回給發件人,該表包含無效的收件人地址。
如果郵件隊列管理進程請求,rewrite后臺程序對收件人地址進行解析。但是缺省地,rewrite只對郵件收件人是本地的還是遠程的進行區別。如果郵件對你管理進程請求,bounce后臺程序可以生成一個郵件不可投遞的報告。本地投遞代理local進程可以理解類似UNIX風格的郵箱,sendmail風格的系統別名數據庫和sendmail風格的.forward文件。可以同時運行多個local進程,但是對同一個用戶的并發投遞進程數目是有限制的。你可以配置local將郵件投遞到用戶的宿主目錄,也可以配置local將郵件發送給一個外部命令,如流行的本地投遞代理procmail。在流行的linux發行版本RedHat中,我們就使用procmail作為最終的本地投遞代理。遠程投遞代理SMTP進程根據收件人地址查詢一個SMTP服務器列表,按照順序連接每一個SMTP服務器,根據性能對該表進行排序。在系統負載太大時,可以有數個并發的SMTP進程同時運行。pipe是用于UUCP協議的投遞代理。
以上就是postfix郵件的接收和投遞過程是怎樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。