Varidata 新聞資訊
知識庫 | 問答 | 最新技術 | IDC 行業新聞
Varidata 知識文檔

如何使用 LMTP 將郵件投遞到 Maildir 虛擬使用者

發布日期:2026-03-18
LMTP 投遞至 Maildir 虛擬使用者示意圖

如果你希望為基於 Maildir 格式的虛擬使用者提供可靠的郵件投遞方式,LMTP(本地郵件傳輸協定)為這一任務提供了一種現代化的解決方案。將 LMTP 與香港伺服器租用結合使用,可以為你帶來更好的效能和更輕鬆的虛擬信箱管理。正確配置權限、DNS 紀錄以及 SSL 憑證,有助於讓整個環境保持安全與穩定。

要點速覽

  • LMTP 透過分擔處理開銷、減少伺服器壓力,從而提升 Maildir 虛擬使用者的郵件投遞效能。

  • 正確設定權限和 SSL 憑證,可以顯著增強郵件系統的安全性與穩定性。

  • 使用 Unix 通訊端傳輸 LMTP 流量,有助於實現更安全、更可靠的本地郵件投遞。

  • 定期測試郵件環境並查看日誌,確認投遞成功情況,及時排查潛在問題。

  • 考慮加入 Sieve 訊息過濾、配額管理等功能,以優化使用者體驗並提升資源管理效率。

為什麼使用 LMTP 進行 Maildir 投遞

本地投遞中 LMTP 與 SMTP 的比較

也許你會疑惑:在本地投遞情境下,為什麼要選擇 LMTP 而不是 SMTP?當你需要向虛擬使用者投遞郵件時,LMTP 具有多項優勢。

  • LMTP 可以減輕後端訊息儲存的負擔。它將部分處理工作卸載給中繼節點,使得系統在規模擴大時更容易擴充。

  • 你可以避免對 LDAP 伺服器施加過大壓力,從而降低在大型郵件系統中出現瓶頸的風險。

  • LMTP 能夠減少訊息佇列數量,讓你更容易追蹤郵件流轉並管理整套系統。

採用 LMTP 投遞,可以簡化整體架構,相較於傳統 SMTP 提升效率。Postfix 與 LMTP 協同工作表現良好,特別是在使用 Dovecot 作為投遞代理時。

對虛擬使用者的優勢

對於使用 Maildir 格式的虛擬使用者而言,LMTP 帶來了諸多重要好處。

  • LMTP 能迴避本地投遞中常見的問題,它允許你將郵件集中儲存在 IMAP 郵件儲存中,直到使用者實際存取自己的郵件。

  • 在使用 LMTP 時,MTA 可以以非特權模式執行,從而降低執行危險程式碼的風險,整體安全性更高。

  • Dovecot 原生支援 LMTP,你能夠獲得對 Maildir 的可靠投遞,並更輕鬆地管理權限。

提示:將 Dovecot 與 LMTP 結合配置,可以讓你的郵件系統更安全、更易維護,同時也為虛擬使用者提供更佳的使用體驗。

你應當始終檢查各個 Maildir 目錄是否具有正確權限,這能確保 LMTP 對每個虛擬使用者的投遞過程順暢無誤。

架構與前置條件

系統需求

在為 Maildir 虛擬使用者部署 LMTP 投遞之前,你需要先為系統做好準備,確保各項元件齊備。以下清單可以作為準備工作的參考:

  1. 安裝並配置 Postfix 郵件伺服器。

  2. 在配置檔案中啟用 Dovecot 的 LMTP 支援。

  3. 為每個虛擬使用者建立 Maildir 目錄。

  4. 新增專用的 vmail 使用者,用於管理郵件儲存。

  5. 為你的網域配置 DNS 紀錄。

  6. 申請並安裝 SSL 憑證,以便提供安全連線。

  7. 為 SMTP 驗證和郵件投遞配置 UNIX 通訊端。

  8. 配置防火牆規則,只放行所需的網路流量。

  9. 管理系統服務,確保 Dovecot 與 Postfix 始終處於執行狀態。

  10. 測試整體配置,確認各項功能按預期運作。

在繼續後續步驟前,應逐項核對上述清單,有助於在配置階段避免常見問題。

使用者與目錄結構設定

你需要建立 vmail 使用者並搭建正確的 Maildir 目錄結構,然後將所有 Maildir 目錄的擁有者設定為 vmail 使用者。這樣可以避免權限錯誤,同時提升系統安全性。

當你將 LMTP 綁定到 Unix 通訊端時,可以顯著提升郵件投遞的可靠性。作業系統會透過檔案權限來強制存取控制,只有受信任的本地行程才能存取該通訊端,從而降低未授權存取或權限提升的風險。在 Dovecot 配置中,你應優先選擇 Unix 域通訊端,而非 TCP 連線來傳輸 LMTP 流量。

注意:錯誤配置傳輸機制可能會將系統暴露在安全風險之下。務必定期審查 Dovecot 與 Postfix 的配置檔案,確保權限與路徑設定正確。

透過上述步驟,你可以為虛擬郵件系統打下穩固基礎。只要認真地完成使用者、目錄以及配置檔案的設定,就能確保 Maildir 投遞平穩運作且安全可靠。

安裝並配置 Dovecot LMTP

Dovecot LMTP 安裝

在使用 LMTP 完成郵件投遞之前,你需要先安裝 Dovecot,並啟用 Dovecot LMTP 服務。首先根據所用 Linux 發行版選擇合適的軟體套件管理器,下面的表格列出了常見的安裝指令:

Linux 發行版

套件管理器

安裝 Dovecot 的指令

Ubuntu/Debian

apt

sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -y

CentOS/Rocky Linux

dnf

sudo dnf install dovecot -y

安裝 Dovecot 之後,你需要為虛擬使用者配置 Maildir 路徑。開啟配置檔案,設定 mail_location 參數,並建立對應的郵件儲存目錄,然後將這些目錄的擁有者設定為 vmail 使用者和使用者群組。這一步能防止在使用 Dovecot LMTP 投遞時發生權限錯誤。

你可以按照以下步驟完成基本的 Dovecot 配置:

  1. 為你的系統安裝 Dovecot 相關軟體套件。

  2. 編輯 /etc/dovecot/conf.d/10-mail.conf,設定 mail_location = maildir:/var/mail/vhosts/%d/%n

  3. 為網域和郵件儲存建立對應目錄。

  4. 新增 vmail 使用者和使用者群組,並將所有郵件目錄的擁有者設為該使用者。

  5. 在配置檔案中啟用 IMAPS、POP3S 和 Dovecot LMTP 服務。

  6. 更新驗證設定,確保存取安全。

提示:務必檢查 Dovecot 配置中的權限與路徑是否正確,這對 LMTP 投遞的穩定性至關重要。

LMTP 通訊端配置

你需要將 Dovecot LMTP 服務綁定到一個 Unix 通訊端,以實現安全的本地投遞。該通訊端通常定義為 /var/cyrus/socket/lmtp。可以使用指令 lmtpd -U 100 將 LMTP 綁定到該通訊端。請確保通訊端名稱與你在 Dovecot 中的配置保持一致,並設定合適的權限,只允許 Postfix、Dovecot 等受信任服務存取該通訊端。

  • Unix 通訊端會將存取限制在本地行程範圍內。

  • 檔案權限可以保護你的 Maildir 和 Dovecot LMTP 服務免受未授權存取。

  • 如此可以整體提升虛擬郵件系統的安全性與可靠性。

注意:每次修改配置後,都要重新檢查 Dovecot 與 Postfix 的配置檔案。養成這個習慣,可以有效避免錯誤並保持 LMTP 投遞的穩定運作。

為 LMTP 投遞配置 Postfix 郵件伺服器

將 Postfix 配置為透過 LMTP 向虛擬使用者投遞郵件,是整個郵件系統建置中的關鍵步驟。你需要把 Postfix 與 Dovecot 連接起來,以便所有郵件都能正確寫入相應的 Maildir 目錄。這一過程可以確保 LMTP 投遞可靠,並讓虛擬信箱結構清晰、安全。

Postfix 主要配置

為了透過 Dovecot 啟用 LMTP 投遞,你需要在 Postfix 主配置中調整若干項設定,這會幫助你以更安全、更高效的方式完成郵件投遞。按照以下步驟,透過 Unix 通訊端將 Postfix 與 Dovecot 連接:

  1. 在 Dovecot 配置中啟用 LMTP 協定。編輯 /etc/dovecot/dovecot.conf,在協定列表中加入 lmtp

  2. /etc/dovecot/conf.d/10-master.conf 中配置 LMTP 通訊端,確保其路徑與 Postfix 所使用的路徑一致。

  3. /etc/dovecot/conf.d/20-lmtp.conf 中設定 LMTP 相關參數,例如郵件外掛與 postmaster 位址。

  4. 編輯 /etc/postfix/main.cf,將 virtual_transport = lmtp:unix:private/dovecot-lmtp,讓 Postfix 透過該 Unix 通訊端向 Dovecot 傳送郵件。

  5. 如果你也希望對本地系統使用者使用 LMTP 投遞,可設定 mailbox_transport = lmtp:unix:private/dovecot-lmtp

你還應更新 Postfix 中的其他設定,以更好地配合 LMTP 投遞並確保驗證安全:

  • 在 main.cf 中設定 mailbox_transport = lmtp:unix:private/dovecot-lmtp(如需要)。

  • 設定 mailbox_size_limit = 0message_size_limit = 0,避免大型郵件導致的投遞問題。

  • 如需啟用 SASL 驗證,可新增以下配置:

    • smtpd_sasl_type = dovecot

    • smtpd_sasl_path = private/auth

    • smtpd_sasl_auth_enable = yes

    • smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

  • 如果由 Dovecot 負責信箱佈局管理,可以註解或刪除 virtual_mailbox_base

提示:每次修改 Postfix 配置後,都要重新載入服務。使用 postfix reload 指令即可套用變更。

透過這些設定,可以讓 Postfix 直接與 Dovecot 使用 LMTP 進行通訊,為系統中的每一封郵件建構一條安全高效的投遞路徑。

虛擬使用者與 Maildir 映射

將虛擬使用者映射到對應的 Maildir 位置,是虛擬信箱配置中的核心步驟。你需要告訴 Postfix 應將每位使用者的郵件儲存到哪個目錄,以及由哪位系統使用者擁有該信箱。清晰的映射關係可以讓虛擬信箱結構化管理,並確保 Dovecot 能存取每一封郵件。

下面的表格展示了用於虛擬使用者映射的主要 Postfix 配置項:

配置項

取值範例

virtual_mailbox_domains

example.com(可按需新增更多網域)

virtual_mailbox_base

/var/mail/vhosts

virtual_mailbox_maps

hash:/etc/postfix/vmailbox

virtual_minimum_uid

100

virtual_uid_maps

static:5000

virtual_gid_maps

static:5000

virtual_alias_maps

hash:/etc/postfix/virtual

virtual_transport

lmtp:unix:private/dovecot-lmtp

更新 virtual 檔案的指令

postmap /etc/postfix/virtual

更新 vmailbox 檔案的指令

postmap /etc/postfix/vmailbox

重新載入 Postfix 的指令

postfix reload

你需要在 virtual_mailbox_domains 中列出所有需要處理的網域。virtual_mailbox_base 指明 Maildir 目錄的根路徑,而 virtual_mailbox_maps 檔案用於將每個信箱位址映射到對應的 Maildir 路徑。例如:

info@example.com example.com/info/ sales@example.com example.com/sales/

@example.com example.com/catchall

你應將 virtual_uid_maps 與 virtual_gid_maps 設定為 vmail 使用者及其使用者群組的 ID,這樣 Dovecot 才能以正確權限存取所有信箱。virtual_alias_maps 檔案則用於配置郵件別名或轉寄位址等。

虛擬使用者映射過程大致如下:

配置參數

說明

virtual_mailbox_base

設定所有信箱所在的基礎目錄。

virtual_mailbox_maps

將每個收件人位址映射到相應的 Maildir 路徑。

virtual_uid_maps

為每個信箱指定擁有者使用者 ID。

virtual_gid_maps

為每個信箱指定擁有者使用者群組 ID。

更新映射檔案後,使用 postmap 指令產生對應的資料庫檔案,然後重新載入 Postfix 以使配置生效。

注意:務必確認各個 Maildir 目錄已建立且權限、擁有者設定正確,這能有效避免權限錯誤並確保 LMTP 投遞順暢運作。

透過上述操作,你就能讓 Postfix 與 Dovecot 之間實現順暢的 LMTP 投遞,確保每個虛擬使用者都能準確、安全地接收郵件。你的郵件伺服器將很好地支援虛擬信箱,並為所有使用者提供可靠的投遞能力。

LMTP 投遞的測試與故障排除

驗證郵件投遞

你應定期檢查系統是否將郵件正確投遞到對應的 Maildir 目錄。首先向某個虛擬使用者傳送一封測試郵件,然後透過以下方式確認郵件是否送達:

  • 執行 ls -l /home/chris/Maildir/new,查看 Maildir 的 new 目錄中是否出現新郵件檔案。

  • 使用 less /home/chris/Maildir/new/<filename> 開啟具體郵件檔案,檢查內容是否正確。

  • 使用 mutt -f ~/Maildir 等用戶端開啟 Maildir,方便瀏覽和閱讀郵件。

你也可以透過查看日誌來確認投遞結果。下表列出常用日誌檔案及其用途:

日誌檔案

用途

dovecot-lmtp.log

確認 Dovecot LMTP 是否接收並處理郵件

exim/mainlog

確認郵件投遞到 LMTP 的狀態

要查看最近的 LMTP 活動,可以執行 sudo grep "lmtp" /var/log/maillog | tail -5,並留意包含 status=sent (250 2.0.0 OK) 等字樣的紀錄,以確認郵件已被接收和投遞。

常見問題與解決方案

在部署過程中,你可能會遇到一些常見問題,例如「relay access denied」錯誤,或者日誌顯示投遞成功卻在目標 Maildir 中找不到郵件。要排除這些問題,你可以:

  • 檢查配置中 virtual_mailbox_domainsvirtual_mailbox_base 等參數是否正確。

  • 核對所有 Maildir 目錄的權限和使用者映射是否符合預期。

只要認真審查配置參數和檔案擁有者,大部分投遞問題都能被快速定位和解決。

可選強化功能(Sieve、配額)

你可以為郵件系統新增一些強化功能。Sieve 可用於自動執行諸如郵件分類、自動回覆等操作,使用者可以透過 Roundcube 等 Webmail 介面來管理過濾規則,使得郵件整理更為簡單,無需複雜技術背景。配額管理可以為使用者設定信箱容量上限,你可以根據資源情況決定是否啟用以及如何設定配額策略。

提示:引入 Sieve 與配額功能,可以讓使用者擁有更高的自助管理能力,同時幫助你更合理地分配和利用系統資源。

你可以按照以下步驟,為 Maildir 虛擬使用者建置完整的 LMTP 投遞方案:

  1. 透過系統帳號或虛擬使用者資料庫建立虛擬使用者。

  2. 為信箱存取設定合適的權限。

  3. 更新虛擬信箱映射檔案,使之與每個信箱位址相對應。

結合 Postfix 的 Dovecot LMTP,可以為你提供可靠且安全的郵件投遞能力。務必經常測試配置並檢查日誌,以便及時發現並解決問題。若你需要更高等級的安全性,可以繼續深入以下主題:

  • 強制啟用 SMTP 驗證(SMTP AUTH)與多因素驗證(MFA)。

  • 使用內容過濾並啟用 TLS 加密。

  • 定期監控日誌並保持郵件伺服器軟體及時更新。

常見問答

如何檢查 LMTP 投遞是否正常?

你可以向某個虛擬使用者傳送測試郵件,然後在對應的 Maildir 目錄中檢查是否有新郵件產生,同時查看 Dovecot 與 Postfix 日誌,留意是否出現「status=sent」或「OK」等成功投遞的紀錄。

如果郵件沒有出現在 Maildir 中該怎麼辦?

首先檢查信箱目錄的權限與擁有者是否正確,然後核對虛擬信箱映射檔案配置是否有誤。重新啟動 Dovecot 與 Postfix 服務,並查看日誌,依據錯誤資訊對配置進行修正。

LMTP 是否可以配合 SSL 加密使用?

可以。你可以在 Dovecot 中配置 SSL 憑證,並在相關配置檔案中啟用安全連線,讓 LMTP 在投遞過程中使用加密通道,從而保護郵件傳輸中的資料安全。

如何新增新的虛擬使用者?

先在虛擬信箱映射檔案中新增該使用者的信箱位址與 Maildir 路徑,然後為該使用者建立對應的 Maildir 目錄,並設定正確的擁有者與權限。之後使用 postmap 更新映射資料庫,最後重新載入 Postfix 與 Dovecot 即可。

您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
Telegram Skype