首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Qmail + Vpopmail + MySQL 一體化郵件系統部署實戰總結

     編輯:MySQL 綜合教學

Qmail + Vpopmail + MySQL 多域郵件系統部署避坑全紀錄

網上教程碎片化、版本不匹配、前後不銜接。本文梳理「三階段九步法」標準化部署流程,基於源碼編譯,驗證過版本兼容性,適合生產環境參考。

版本兼容性原則

  • 所有組件**統一使用最新穩定版或開發版**,舊版本與新版本混用極大概率失敗
  • 本文驗證組合:qmail-1.03 + ucspi-tcp-0.88 + daemontools-0.76 + vpopmail-5.0(dev) + qmailadmin-1.0.6 + autorespond + ezmlm

階段一:Qmail 核心部署(三步驗收)

  1. 安裝 qmail-1.03:
    • 參考 INSTALL + lifewithqmail.org 結合操作
    • 驗收:./TEST.deliver 測試本地投遞成功
  2. 安裝 ucspi-tcp:
    • 產生 tcpserver 監聽 25/110 端口,替代 sendmail/inetd
    • 驗收:tcpserver -v 0 25 qmail-smtpd 正常響應 SMTP 握手
  3. 安裝 daemontools:
    • 使用 svscan 掃描 /service 目錄自動啟動服務
    • 在 /service 創建三個服務目錄:qmail-send、qmail-smtp、qmail-pop3d
    • 重啟機器,ps -ax | grep qmail 看到三個進程 → ./TEST.receive 測試收信成功

關鍵點:此時 qmail 僅支持單域,pop3 由 qmail-pop3d 提供,無 MySQL 整合。

階段二:Vpopmail + MySQL 多域整合(四步驗收)

  1. 編譯安裝 vpopmail 5.0 (dev):
    ./configure --enable-mysql=y --enable-mysql-replication=y \
                --enable-default-domain=your-primary-domain.com
    make && make install-strip
    

    必選參數:--enable-mysql=y 啟用 MySQL 後端;--enable-default-domain 避免 Foxmail 等客戶端需輸入 user%domain 格式;確保 /var/qmail/control/locals 包含默認域

  2. 創建首個虛擬域:
    /home/vpopmail/bin/vadddomain domain.com postmaster-password
    

    記住密碼,qmailadmin 登錄憑證即為 domain.com / postmaster-password

  3. 替換 pop3 服務為 vpopmail:

    編輯 /var/qmail/supervise/qmail-pop3d/run(單行):

    /usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup \
        your.pop.server /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d
    

    your.pop.server 需在 DNS 配置 IN MX 記錄指向

  4. 驗收:重啟機器,Telnet 110 端口用虛擬域用戶登錄收信成功

階段三:Qmailadmin 管理界面部署(兩步驗收)

  1. 安裝依賴:autorespond、ezmlm (支持 MySQL 郵件列表)
  2. 編譯 qmailadmin:
    ./configure --enable-cgibindir=/usr/local/apache/cgi-bin \
                --with-htmllibdir=/usr/local/apache/htdocs/qmailadmin \
                --enable-htmldir=/usr/local/apache/htdocs/qmailadmin
    make && make install
    

    生成 qmailadmin.cgi 於 CGI 目錄,Web 訪問 https://your.domain/cgi-bin/qmailadmin.cgi

  3. 驗收:瀏覽器登錄 qmailadmin(域名 + vadddomain 密碼),成功創建/刪除郵箱用戶

最終驗收清單

  1. 重啟機器(驗證 daemontools 自啟動)
  2. Foxmail/Outlook 配置 POP3/SMTP:用戶名 user@domain.com,密碼正常收發
  3. 跨域收發測試:domain1.com ↔ domain2.com
  4. qmailadmin 批量操作測試

常見坑點總結

  • 版本不匹配:新版 vpopmail 需新版 qmailadmin,舊 ezmlm 不支持 MySQL
  • 權限地獄:vpopmail 目錄屬主必須為 vpopmail:vchkpw,qmailadmin CGI 需 SUID root
  • DNS 配置缺失:MX 記錄、A 記錄、rDNS (PTR) 三者缺一不可,否則進垃圾箱或被拒
  • MySQL 連接失敗:vpopmail 編譯時未檢測到 MySQL 庫/頭文件,需安裝 mysql-devel
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved