[案例分享]電郵搬家

2024-12-06

除了虛擬主機日常維運,替新客戶搬遷資料也佔我們不少工作量的比例。很多人以為搬家只是工程師按一下就能完全工作,實際上每次搬遷都有機會遇到意想不到的狀況。

這一次分享的個案,客人在舊廠商的虛擬主機空間已經用滿,所以不能透過cPanel導出備份,關於這個部份我們有經驗處理,就是部份資料先用FTP導出,也不困難,我們一天內就幫客戶移轉好。

但問題來了,第二天客人回報郵箱子資料夾內的郵件都打不開。應該是因為郵箱資料直接經FTP導出,缺了格式轉換(UTF8轉UTF7)的過程,導致中文名稱的資料夾都打不開。那天我們立即寫了一個小程序進行轉換,解決客人的問題。

因為時差關係,廠商沒有立刻回覆,所以當天真的是我們自己用python寫了一個轉換出來。如果有其他朋友遇到一模一樣的問題,可以參考以下的轉換方式 (這個是後來廠商提供,不是我們自己寫的)。

flat_maildir_utf8_to_mutf7() {
local maildir=$1 olddir newdir oldsub newsub
find "${maildir}" -mindepth 1 -maxdepth 1 -type d -printf '%P\n' | while IFS= read -r olddir; do
# stderr is ignored to silence:
# Error: net_connect_unix(/var/run/dovecot/stats-writer) failed: Permission denied
if ! newdir=$(doveadm mailbox mutf7 -8 "${olddir}" 2> /dev/null); then
continue
fi
if [ -z "${olddir}" ] || [ -z "${newdir}" ] || [ "${olddir}" = "${newdir}" ]; then
continue
fi
mv "${maildir}/${olddir}" "${maildir}/${newdir}"
if [ -f "${maildir}/subscriptions" ]; then
# Convert dir separator from . to \t
oldsub=${olddir//./$'\t'}
newsub=${newdir//./$'\t'}
# Strip leading separator and escape for regex
oldsub=$(sed 's/[.[*^\/&$]/\&/g' <<< "${oldsub:1}")
newsub=$(sed 's/[.[*^\/&$]/\&/g' <<< "${newsub:1}")
# Update subscriptions file
sed -i "s/^${oldsub}$/${newsub}/" "${maildir}/subscriptions"
fi
done
}

科比擁有經營虛擬主機、網站代管20年經驗與眾多口碑青睞,網頁相關服務都可以交給我們!

 

優惠的年費與貼心售後服務一直是我們致力想提供給客戶的,持續創新與進步的技術支援、解決需求,希望讓客戶用划算的價格體驗最好的服務!

你也會喜歡

服務通告, 科比服務

2026-07-11

Weebly 停止服務問與答

最近我們有收到不少關於 Weebly 轉移的查詢,我們整理了一些用戶查詢,給各位參考。 1、請問 Weebly

服務通告

2026-07-06

Joomla 最新安全漏洞通知

我們在過去一個星期偵測到,部分舊版本Joomla 網站有被嘗試植入,甚至已經被植入惡意軟體的痕跡。而大部分植入 […]

IT新聞, WordPress, 服務通告

2026-05-19

WordPress插件更新事故通知

如果你的WordPress網站今天突然掛掉,可以留意一下是不是有安裝 「Shortcodes Ultimate […]

科比教室

2026-04-29

補強Cloudflare的「漏洞」

不論是優化網站載入速度,還是提升網站安全,Cloudflare都是網站開發者的恩物,就算不付費,免費帳號已經有 […]

個案分享

2026-04-14

避免踩雷!註冊網域的風險

一個容易被記得,簡潔明瞭的網域名稱,不論對個人還是公司是非常重要,所以選對網域非常重要。甚至進一步的講,假如你 […]

個案分享, 科比服務

2026-03-04

震撼賬單的來源!了解AI爬虫

什麼是AI爬蟲 (AI Crawler) 首先要理解現在像ChatGPT這些AI,它們的常識來源有一大部份是透 […]

買主機送網域

購買虛擬主機,即贈送一年網域名稱

買主機送網域

購買虛擬主機,即送一年網域名

買主機送網域

購買虛擬主機,即贈送一年網域名稱