vibe coding – 02 把公司信箱從 Synology 搬到 mailcow,使用者完全無感的一次 cutover 🛠️

用 claude 做一個事:把公司的郵件主機從的 2017 年的  Synology DSM MailPlus  無縫接軌,搬到 mailcow(dockerized),——使用者端零設定、密碼不用改、DNS 一個字都不動。紀錄一下過程跟踩到的雷。

登入頁面

 

為什麼要搬?

舊的 DSM 版本太老(kernel 3.10),時排程重開後會卡在開機,需手動 reset 。經過跟claude 討論,換成 mailcow——Postfix + Dovecot + Rspamd + ClamAV + SOGo + Fail2ban 全部整合好 — 別問我這些是甚麼,就討論出來,需要加上的相關機制。

 

最關鍵的遷移原則:公共 IP 不變,PTR 也正確,所以 DNS、SPF、DKIM、MX 全部不用動。用「內網 IP 對調」做 cutover,使用者完全無感。

 

大致流程

  1. 先開一台 Ubuntu 24.04 + Docker,把 mailcow 裝起來(18 個容器一次拉好跑起來)。
  2. 透過 mailcow API 把網域、四個信箱、反垃圾規則一次建好。
  3. DKIM 直接匯入舊的私鑰(沿用原本的 selector),所以 DNS 上的 TXT 完全不用改、簽章零中斷。
  4. 用 mailcow 內建的 imapsync 把舊信箱整包搬過來(保留原本的資料夾結構)。
  5. 最後做 IP 對調:舊機讓出原本的內網 IP、新機接手,router 完全不動。

 

結果驗證:Gmail 測試 SPF / DKIM / DMARC 全 PASS,一千多封信、原密碼、防垃圾名單、webmail 全部正常。舊機先擺著當 rollback,穩幾天才退役。😌

系統資訊

Claude code 爆的幾個雷區 ⚡

① 密碼搬移其實是「hash 搬移」 重點不是叫使用者改密碼,而是把舊系統的 shadow hash($6$ / $1$ 那種)直接搬到 mailcow 信箱欄位。mailcow 偵測到 {SCHEME} 前綴就直接存,使用者的 IMAP/SMTP 密碼完全不變。

 

小插曲:統一管理帳號被我臨時重設密碼讓 imapsync 讀,結果連帶 SSH/sudo 也跟著變……遷移完記得還原 🤦

 

② SOGo webmail 403 的陷阱 用 API 建的信箱,sogo_access 預設是 off,導致 IMAP/POP/SMTP 都正常、就只有 webmail 噴 403。要手動把它開起來、重啟 SOGo,而且舊 session 會 cache「沒權限」,得重新登入才會生效。

 

③ Rspamd 後台顯示「沒有可用的規則」 這個超詐騙——引擎本身好好的(幾千條規則都載入了),純粹是 web UI 的 controller 沒有有效密碼,導致後台拿不到 symbols/stat 全部 401。自己用 rspamadm pw 產一組 hash 塞進 override 設定、重啟,才看得到那 4000 多條規則。

 

④ 改信箱密碼別信 doveadm auth test 這指令即使密碼正確也會回 auth failed,因為它帶的參數不被驗證器接受。要嘛直接打驗證 API、要嘛真的用 IMAPS 登入測。被它騙了好一陣子。

 

⑤ 改模板沒反應? mailcow 的 Twig auto_reload 是關的、php-fpm 又開 opcache,所以你改完模板送出去的還是舊的編譯版。一定要清 cache + 重啟 php-fpm,只清其中一個都不夠。

設定:封鎖機制

順便把公司官網也搬了

cutover 之後 WAN 的 80/443 被指到新機,結果公司官網變成顯示 mailcow 登入頁 😅。乾脆把靜態網站也搬到同一台,憑證加 SAN、用一個「附加式」的 nginx vhost 做 SNI 分流,不動 mailcow 本身的設定(這樣之後 mailcow 更新才不會被蓋掉)。

被封鎖的IP

Claude code 的心得

整件事最爽的點:對使用者來說什麼都沒發生——信還是那個信、密碼還是那個密碼、網址還是那個網址。底層整個換掉,沒人需要重設任何東西。 要說最大的教訓,大概就是:自架郵件的魔鬼全在認證跟 cache 的細節裡。引擎跑得好好的,但 webmail、後台 UI、密碼驗證這些「外圍」反而最會出事。每一個都不是大問題,但每一個都夠你卡半天 😂

DKIM:

我的心得

搬遷大約60分鐘。 我用一個 vm 跑 claude code, 遙控另外兩台 vm , 基本上就是叫 claude code 自己跑,自己檢查,自己修正。給我檢查結果。 想到以前,原來的 mail system, 安裝容易,但是:SPF、DKIM、DMARC,antispam , 防毒….. 一路走下來,跌跌撞撞。 現在: 叫個AI處理,我就欣賞他表演。連安全測試都幫忙搞定。 時代真的變了。

RAPAMD : 垃圾信過濾及防毒

 

用戶登入

WEBMAIL

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料