亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

postfix架構簡介是什么

發布時間:2021-10-20 17:41:48 來源:億速云 閱讀:172 作者:柒染 欄目:大數據

postfix架構簡介是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

postfix怎樣接收郵件

當一封郵件進入postfix系統時,它的第一站是一個叫incoming的隊列。下圖展示了新郵件處理的主要流程,帶數字的表示命令或程序,不帶數字的表示隊列.

 trivial-
rewrite(8)





Network->smtpd(8) ^ || v

 \




Network->qmqpd(8)->cleanup(8)->incoming
 /




 pickup(8)<-maildrop


 ^
|





Local->sendmail(1)->postdrop(1)

  • 網絡上的郵件通過smtpd或qmqpd服務進入postfix,這兩個服務會移除掉郵件的smtp或qmqp協議的封裝信息,對郵件進行健全檢查來保護postfix,然后將發件人,收件人和郵件內容提交給cleanup服務。可以通過配置smtpd來阻止那些不想要的郵件。

  • 通過sendmail命令可以從本地提交郵件給postfix,郵件通過postdrop命令進入maildrop隊列,這個過程在postfix沒有運行時也可以進行。本地服務pickup會對本地提交的郵件進行健全檢查,然后將發件人,收件人和郵件內容提交給cleanup服務。

  • 從內部來源的郵件會直接傳給cleanup(8)服務,這些來源在上表中并沒有展示出來,比如由local(8)轉發的郵件,delivery agent,由bounce(8)退回給sender的郵件,server,postmaster的通知郵件。

  • cleanup(8)實現了郵件進入隊列前的最最后處理階段。它會補上缺失的From:和其他頭部信息,并將地址轉換為規范格式。此外,它還可以配置成對郵件內容進行輕量檢查和正則檢查。cleanup(8)將處理好的郵件變成一個文件交給incoming隊列,并能知隊列管理器有新郵件到達。

  • trivial-rewrite(8)將郵件地址重寫成標準格式。當前,postfix并沒有實現一種重寫語言,但是通過lookup表可以實現很多重寫,此外還可以通過正則表達式來實現。

postfix怎么投遞郵件

一旦一封郵件進入了incoming隊列就開始了投遞流程,下表展示了postfix投遞郵個的整個過程:

trivial-
rewrite(8)
 smtp(8)->Network



/







 ^ || v-lmtp(8)->Network


/







incoming->active->qmgr(8)---local(8)->File, command
 ^ || v \




-virtual(8)->File




 deferred \




 pipe(8)->Command




  • 隊列管理器qmgr(8)是postfix進行郵件投遞的心臟,它連接smtp(8),lmtp(8),local(8),virtual(8),pipe(8),discard(8),error(8)投遞代理,然后發送投遞請求投遞給多個收件人。discard和error代理比較特殊,它們會丟棄和回彈所有郵件,在上表中并沒有展示這兩個服務。隊列管理維護著一個小的active隊列,隊列里的郵件是將要進行投遞的郵件。active隊列對于有可能會很大的incoming和deferred隊列來說就像一個有限大小的窗口,這個窗口限制可以使得postfix不會因為隊列過大而將內存用完。隊列管理器維護著一個 deferred隊列保存那些不能投遞的郵件,這樣即使有大量的郵件積壓也不會影響正常隊列的訪問。

  • trival-rewrite(8)將每一個收件人地址按本地和遠程進行分類。附加的路由信息可以通過transport(5)表指定。trival-rewrite不定期地查詢relocated(5)表來判斷哪些收件人地址已經改變,發給這些收件人的郵件將返回給發件人并加上說明。

  • smtp(8)郵件發送客戶端會查詢一系列mx服務器作為目標地址交將按優先級排序,逐個嘗試這些服務器直到其中一個有響應為止,然后按照協議組裝好收件人,發件人和郵件內容,包括了將8-bit MIME轉換為7-bit編碼。

  • lmtp(8)客戶端使用類smtp協議,是一種為了投遞郵件而優化過的協議。這種做法的好處是一個postfix可以對接多個郵件服務器,當然一臺郵件服務器也可以對接同一個postfix。

  • local(8)代理能識別unix風格,兼容qmail郵箱目錄文件,sendmail風格的郵件等等。

  • virtual(8)代理是一個最簡單的代理,只能投遞unix風格和qmail格式的郵件。不過,它可以為多個域名進行投遞,所以特別適合在一臺機器上作為多個小域名的host。

  • pipe(8)郵寄者是一個與外部郵件處理系統對接的外發接口,兼容unix。

Postfix behind the scenes

  • master(8)是postfix郵件系統的監控者,在postfix start命令時啟動,并伴隨著系統的整個運行過程。它負責啟動postfix的進程來接收和投遞郵件,并在服務意外終止時重啟服務,根據master.cf中的配置項來限制服務進程的數量。

  • postfix架構簡介是什么

  • anvil(8)服務為smtpd服務實現了客戶端連接和請求頻率限制:

    • Network->smtpd(8)<->anvil(8)

  • bounce(8),defer(8),trace(8)每個服務都維護了一個自己的隊列目錄樹,每封郵件對應一個文件,postfix利用這些信息來發送“失敗“,”延遲“或”成功“這些投遞狀態通知給發件人。

  • cleanup(8)->qmgr(8)
    Postfix
    queue
    ->Delivery
    agents
    ^
    |
     |
    v
     |
    v
    (Non-)
    delivery
    notice
    <-bounce(8)
    defer(8)
    trace(8)
    <-Queue id,
    recipient,
    status
     ^ || v


     Per- 
    message
    logfiles



  • flush(8)服務為每個目標維護日志。將延遲隊列中的郵件轉移到incoming隊列進行投遞。

  •  incoming 

    deferred







     ^
    |







    smtpd(8)
    sendmail(1)
    postqueue(1)
    -Destination
    to flush
    ->flush(8)<-Deferred
    destination,
    queue id
    -Delivery
    agents,
    qmgr(8)
     ^ || v






     Per-dest-
    ination
    logs







  • proxymap(8)為postfix進程提供了只讀和只寫的表查詢服務,這種方式避免了chroot的限制,查詢表可以在多個進程共享,因此減少了表的打開數量,并實現了單個進程來更新表。

  • scache(8)服務為smtp進程維護連接緩存,可以針對指定目標開啟連接緩存,為了安全起見,postfix會對連接重用的次數進行限制。

  • showq(8)服務可以列出posfix隊列狀態,供mailq和postqueue命令使用。

  • spawn(8)服務運行非postfix指令。

  • tlsmgr(8)服務在postfix為smtp和smtpd開啟了TLS時運行,它有兩個職責:

    • 維護一個偽隨機數生成器生成種子供TLS引擎使用,生成器的狀態定期保存到一上文件,并在tlsmgr啟動時讀取。

    • 維護TLS會話中的key的緩存,緩存key可以提高TLS會話的性能。

  • verify(8)服務在smtpd在接收郵件前驗證發件人或收件人是否可投遞,驗證服務先去地址驗證緩存進行查詢,如果沒有找到則向postfix隊列注入一個探測消息,由投遞代理或隊列管理器處理狀態更新。

  • postscreen(8)服務可以放在smtpd進程前面,它的目標是從網絡接收連接并判斷哪些smtp客戶端允許訪問postfix。postscreen的目的是阻止垃圾郵件的發送者,它會維護一個臨時的白名單,白名單中的客戶端可以跳過檢測。

Postfix support commands

  • postfix,這個命令是用來啟動,關閉和重啟系統用的,是預留給超級用戶使用的。

  • postalias,用來維護aliases(5)類型數據庫。

  • postcat,用來展示隊列中的文件內容,這是一個初級的工具,可能會被有更強大功能是命令取代。

  • postconf,展示或更新main.cf中的參數。

  • postdrop,一個郵個發送工具,將郵件放到maildrop隊列。

  • postkick,使得一些內部通信管道可用,比如供shell腳本用。

  • postlock,提供了postfix兼容的郵筒鎖,比如供shell腳本用。

  • postlog,提供了postfix兼容的日志供shell腳本用。

  • postmap,維護了postfix查詢表,比如canonical(5),virtual(5)。

  • postmulti,為每一個postfix實例重復”postfix start“命令,并支持創建,刪除postfix實例。

  • postqueue,是享有特權的命令,供sendmail和mailq用來刷新或列出隊列用。

  • postsuper,用來維護postfix隊列,它移除舊的臨時文件,并移動隊列文件到正確的目錄,這個命令在postfix啟動和重啟時運行。

看完上述內容,你們掌握postfix架構簡介是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

剑川县| 英超| 景东| 梅州市| 岳普湖县| 德令哈市| 万州区| 阜新市| 宾阳县| 方山县| 成都市| 建德市| 新丰县| 小金县| 恭城| 武安市| 旌德县| 五指山市| 吕梁市| 正镶白旗| 泗洪县| 饶阳县| 宁海县| 根河市| 彰化县| 百色市| 沙洋县| 大宁县| 汕尾市| 富锦市| 新龙县| 嘉善县| 聂拉木县| 赤壁市| 昌吉市| 浠水县| 阿克陶县| 安阳县| 漾濞| 永康市| 渝北区|