共計(jì) 1570 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 Postfix 對(duì)郵件如何處理,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一. 接收郵件的過程
當(dāng) postfix 接收到一封新郵件時(shí),新郵件 *** 在 incoming 隊(duì)列處停留,然后針對(duì)不同的情況進(jìn)行不同的處理:
1. 對(duì)于來自于本地的郵件:sendmail 進(jìn)程負(fù)責(zé)接收來自本地的郵件放在 maildrop 隊(duì)列中,然后 pickup 進(jìn)程對(duì) maildrop 中的郵件進(jìn)行完整性檢測(cè)。maildrop 目錄的權(quán)限必須設(shè)置為某一用戶不能刪除其他用戶的郵件。
2. 對(duì)于來自于網(wǎng)絡(luò)的郵件:smtpd 進(jìn)程負(fù)責(zé)接收來自于網(wǎng)絡(luò)的郵件,并且進(jìn)行安全性檢測(cè)。可以通過 UCE(unsolicited commercial email) 控制 smtpd 的行為。
3. 由 postfix 進(jìn)程產(chǎn)生的郵件:這是為了將不可投遞的信息返回給發(fā)件人。這些郵件是由 bounce 后臺(tái)程序產(chǎn)生的。
5. 由 postfix 自己產(chǎn)生的郵件:提示 postmaster(也即 postfix 管理員)postfix 運(yùn)行過程中出現(xiàn)的問題。(如 SMTP 協(xié)議問題,違反 UCE 規(guī)則的記錄等等。)
關(guān)于 cleanup 后臺(tái)程序的說明:cleanup 是對(duì)新郵件進(jìn)行處理的 *** 一道工序,它對(duì)新郵件進(jìn)行以下的處理:添加信頭中丟失的 Form 信息; 為將地址重寫成標(biāo)準(zhǔn)的 user@fully.qualified.domain 格式進(jìn)行排列; 重信頭中抽出收件人的地址; 將郵件投入 incoming 隊(duì)列中,并請(qǐng)求郵件隊(duì)列管理進(jìn)程處理該郵件; 請(qǐng)求 trivial-rewrite 進(jìn)程將地址轉(zhuǎn)換成標(biāo)準(zhǔn)的 user@fully.qualified.domain 格式。
二. 投遞郵件的過程
新郵件一旦到達(dá) incoming 隊(duì)列,下一步就是開始投遞郵件,postfix 投遞郵件時(shí)的處理過程如圖三所示。相關(guān)的說明如下:
郵件隊(duì)列管理進(jìn)程是整個(gè) postfix 郵件系統(tǒng)的心臟。它和 local、smtp、pipe 等投遞代理相聯(lián)系,將包含有隊(duì)列文件路徑信息、郵件發(fā)件人地址、郵件收件人地址的投遞請(qǐng)求發(fā)送給投遞代理。隊(duì)列管理進(jìn)程維護(hù)著一個(gè) deferred 隊(duì)列,那些無法投遞的郵件被投遞到該隊(duì)列中。除此之外,隊(duì)列管理進(jìn)程還維護(hù)著一個(gè) active 隊(duì)列,該隊(duì)列中的郵件數(shù)目是有限制的,這是為了防止在負(fù)載太大時(shí)內(nèi)存溢出。郵件隊(duì)列管理程序還負(fù)責(zé)將收件人地址在 relocated 表中列出的郵件返回給發(fā)件人,該表包含無效的收件人地址。
如果郵件隊(duì)列管理進(jìn)程請(qǐng)求,rewrite 后臺(tái)程序?qū)κ占说刂愤M(jìn)行解析。但是缺省地,rewrite 只對(duì)郵件收件人是本地的還是遠(yuǎn)程的進(jìn)行區(qū)別。
如果郵件對(duì)你管理進(jìn)程請(qǐng)求,bounce 后臺(tái)程序可以生成一個(gè)郵件不可投遞的報(bào)告。
本地投遞代理 local 進(jìn)程可以理解類似 UNIX 風(fēng)格的郵箱,sendmail 風(fēng)格的系統(tǒng)別名數(shù)據(jù)庫(kù)和 sendmail 風(fēng)格的.forward 文件。可以同時(shí)運(yùn)行多個(gè) local 進(jìn)程,但是對(duì)同一個(gè)用戶的并發(fā)投遞進(jìn)程數(shù)目是有限制的。你可以配置 local 將郵件投遞到用戶的宿主目錄,也可以配置 local 將郵件發(fā)送給一個(gè)外部命令,如流行的本地投遞代理 procmail。在流行的 linux 發(fā)行版本 RedHat 中,我們就使用 procmail 作為最終的本地投遞代理。
遠(yuǎn)程投遞代理 SMTP 進(jìn)程根據(jù)收件人地址查詢一個(gè) SMTP 服務(wù)器列表,按照順序連接每一個(gè) SMTP 服務(wù)器,根據(jù)性能對(duì)該表進(jìn)行排序。在系統(tǒng)負(fù)載太大時(shí),可以有數(shù)個(gè)并發(fā)的 SMTP 進(jìn)程同時(shí)運(yùn)行。
pipe 是 postfix 調(diào)用外部命令處理郵件的機(jī)制.
以上是“Postfix 對(duì)郵件如何處理”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!