差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:iredmail:migrate_to_mailu [2025/04/29 18:27] – [2. 在 Mailu 上設定網域與使用者] jonathantech:iredmail:migrate_to_mailu [2025/04/29 18:29] (目前版本) – [6. 關閉 iRedMail 伺服器] jonathan
行 103: 行 103:
 使用 ''imapsync'' 將 iRedMail 的郵件同步到 Mailu,避免直接複製 Maildir 檔案(因 Mailu 和 iRedMail 的 Maildir 結構可能不同)。 使用 ''imapsync'' 將 iRedMail 的郵件同步到 Mailu,避免直接複製 Maildir 檔案(因 Mailu 和 iRedMail 的 Maildir 結構可能不同)。
  
-  1. **安裝 imapsync**: +  **安裝 imapsync**: 
-     * 在中間伺服器(或新舊伺服器之一)安裝 ''imapsync'' +     * 在中間伺服器(或新舊伺服器之一)安裝 ''imapsync'':<code bash>
-<code bash>+
 apt update && apt install imapsync apt update && apt install imapsync
 </code> </code>
-  2. **準備同步指令**: +  **準備同步指令**: 
-     * 針對每個使用者執行 ''imapsync'',範例: +     * 針對每個使用者執行 ''imapsync'',範例:<code bash>
-<code bash>+
 imapsync --host1 <iredmail_ip> --user1 [email protected] --password1 <iredmail_password> \ imapsync --host1 <iredmail_ip> --user1 [email protected] --password1 <iredmail_password> \
          --host2 <mailu_ip> --user2 [email protected] --password2 <mailu_password> \          --host2 <mailu_ip> --user2 [email protected] --password2 <mailu_password> \
行 120: 行 118:
        * ''--syncinternaldates'':保留郵件的原始日期。        * ''--syncinternaldates'':保留郵件的原始日期。
        * ''--allowsizemismatch'':忽略可能的檔案大小差異。        * ''--allowsizemismatch'':忽略可能的檔案大小差異。
-  3. **批量同步**: +  **批量同步**: 
-     * 編寫腳本批量同步所有使用者: +     * 編寫腳本批量同步所有使用者:<code bash>
-<code bash>+
 #!/bin/bash #!/bin/bash
 while IFS=, read -r username password; do while IFS=, read -r username password; do
行 131: 行 128:
 </code> </code>
      * 確保 ''users.csv'' 格式正確,且 Mailu 的密碼已設定。      * 確保 ''users.csv'' 格式正確,且 Mailu 的密碼已設定。
-  4. **監控同步**:+  **監控同步**:
      * 檢查 ''imapsync'' 日誌,確保無錯誤。      * 檢查 ''imapsync'' 日誌,確保無錯誤。
      * 若同步失敗,檢查防火牆(確保 993 端口開放)或帳號密碼。      * 若同步失敗,檢查防火牆(確保 993 端口開放)或帳號密碼。
行 138: 行 135:
 在新伺服器上測試 Mailu 的功能,確保資料完整。 在新伺服器上測試 Mailu 的功能,確保資料完整。
  
-  1. **啟動 Mailu 服務**: +  **啟動 Mailu 服務**: 
-     * 確保所有 Docker 容器運行: +     * 確保所有 Docker 容器運行:<code bash>
-<code bash>+
 docker-compose -f /path/to/mailu/docker-compose.yml up -d docker-compose -f /path/to/mailu/docker-compose.yml up -d
 </code> </code>
-  2. **測試功能**: +  **測試功能**: 
-     * 登入 Mailu Webmail(''https://<mailu_server_ip>/webmail''),檢查郵件是否完整。+     * 登入 Mailu Webmail(''https://mailu_server_ip/webmail''),檢查郵件是否完整。
      * 使用郵件客戶端(例如 Thunderbird)測試 IMAP(端口 993)、SMTP(端口 587)和 POP3(端口 995)。      * 使用郵件客戶端(例如 Thunderbird)測試 IMAP(端口 993)、SMTP(端口 587)和 POP3(端口 995)。
      * 發送測試郵件,確認 SMTP 和 DKIM 簽章正常。      * 發送測試郵件,確認 SMTP 和 DKIM 簽章正常。
      * 檢查反垃圾郵件(Rspamd)是否有效。      * 檢查反垃圾郵件(Rspamd)是否有效。
-  3. **檢查日誌**: +  **檢查日誌**: 
-     * 查看 Mailu 日誌: +     * 查看 Mailu 日誌:<code bash>
-<code bash>+
 docker-compose -f /path/to/mailu/docker-compose.yml logs docker-compose -f /path/to/mailu/docker-compose.yml logs
 </code> </code>
      * 檢查 Dovecot 和 Postfix 日誌(位於 Mailu 容器的 ''/var/log/'')。      * 檢查 Dovecot 和 Postfix 日誌(位於 Mailu 容器的 ''/var/log/'')。
-  4. **驗證 SOGo 資料(若適用)**:+  **驗證 SOGo 資料(若適用)**:
      * Mailu 不原生支援 SOGo(行事曆和聯絡人同步)。若 iRedMail 使用 SOGo,需額外部署 SOGo 容器並還原資料:      * Mailu 不原生支援 SOGo(行事曆和聯絡人同步)。若 iRedMail 使用 SOGo,需額外部署 SOGo 容器並還原資料:
        * 將 iRedMail 的 SOGo 備份(''/var/vmail/backup/sogo/'')傳輸到新伺服器。        * 將 iRedMail 的 SOGo 備份(''/var/vmail/backup/sogo/'')傳輸到新伺服器。
行 162: 行 157:
 將 DNS 記錄指向 Mailu 伺服器,完成遷移。 將 DNS 記錄指向 Mailu 伺服器,完成遷移。
  
-  1. **更新 DNS**:+  **更新 DNS**:
      * 修改網域的 A 記錄,將 ''mail.example.com'' 指向 Mailu 伺服器 IP。      * 修改網域的 A 記錄,將 ''mail.example.com'' 指向 Mailu 伺服器 IP。
      * 更新 MX 記錄,指向 Mailu 的 FQDN。      * 更新 MX 記錄,指向 Mailu 的 FQDN。
      * 更新 SPF、DKIM、DMARC 記錄,確保與 Mailu 配置一致。      * 更新 SPF、DKIM、DMARC 記錄,確保與 Mailu 配置一致。
-  2. **等待 DNS 傳播**:+  **等待 DNS 傳播**:
      * DNS 更新可能需要 24-48 小時。      * DNS 更新可能需要 24-48 小時。
      * 期間保持 iRedMail 伺服器運行,接收新郵件。      * 期間保持 iRedMail 伺服器運行,接收新郵件。
-  3. **最終同步**:+  **最終同步**:
      * 在 DNS 傳播完成前,若 iRedMail 收到新郵件,再次運行 ''imapsync'' 同步增量資料。      * 在 DNS 傳播完成前,若 iRedMail 收到新郵件,再次運行 ''imapsync'' 同步增量資料。
  
行 175: 行 170:
 確認 Mailu 運行正常且無郵件遺失後,關閉 iRedMail 伺服器。 確認 Mailu 運行正常且無郵件遺失後,關閉 iRedMail 伺服器。
  
-  1. **停止服務**: +  **停止服務**:<code bash>
-<code bash>+
 systemctl stop postfix dovecot amavisd clamd nginx systemctl stop postfix dovecot amavisd clamd nginx
 </code> </code>
-  2. **備份最終資料**:+  **備份最終資料**:
      * 再次備份 iRedMail 資料存檔。      * 再次備份 iRedMail 資料存檔。
-  3. **關閉伺服器**:+  **關閉伺服器**:
      * 根據需求關閉或重新利用 iRedMail 伺服器。      * 根據需求關閉或重新利用 iRedMail 伺服器。
  
  • tech/iredmail/migrate_to_mailu.1745922474.txt.gz
  • 上一次變更: 2025/04/29 18:27
  • jonathan