Re: [問題] mail server Quota 的問題
依據之前看到的文件及架設經驗,qpopper 預設的運作模式大致如下:
[session 開始]
(1) qpopper確認使用者 id/pass (以 bobby為例);
(2) 鎖定 bobby 的 mailbox (以/var/mail/bobby 為例);
(3) 把 /var/mail/bobby 複製另一個暫存區 (以 /var/tmp 為例);
(4) 清空 /var/mail/bobby;
(5) 解除鎖定 /var/mail/bobby。
[使用者下載/刪除信件...]
(6) 與 client 端軟體繼續透過 POP3 溝通;此時信件內容以 /var/tmp/bobby 為準。
[session 結束]
(7) 鎖定 /var/mail/bobby;
(8) 將使用者欲保留的信件,從 /var/tmp/bobby 加回 /var/mail/bobby;
(9) 刪除 /var/tmp/bobby;
(10) 解除鎖定 /var/mail/bobby。
會 quota exceeded,問題出在幾個地方。
(a) 步驟 (3),/var/mail 與 /var/tmp 同屬一個 filesystem,複製後使用量會變兩倍。
(b) 步驟 (8),session 期間,有新信件進來,加上使用者欲保留的舊信件超過 quota。
(c) 步驟 (8),已處理過但仍保留於伺服器上之信件,會加上 X-UIDL 的 header,
避免下次要重算一次。如果本來已經瀕臨 quota上限,加上 header 可能就爆了。
(d) 步驟 (8),已下載但仍保留於伺服器上之信件,qpopper 會加上 Status 的 header,
註明以讀取過。與 (c)類似。
使用者遇到狀況 (a)是一開始就無法將檔案 copy 出,無法自行解決這個問題;
使用者遇到狀況 (b)、(c)、(d) 是結束後,無法將檔案 append 回去,
只要不要將信件保留在伺服器上 (或者減少保留的信件數) 就可以解除這個問題。
--enable-servermode 全程使用 /var/mail/bobby 當作工作檔案,可以避免 (a)、(b),
不過要更小心處理與其他程式 (如:openwebmail) 共用檔案‧‧‧;
--disable-status 可以避免 (c)、(d),
這部份我測試是有點小問題,有時候還是會有 X-UIDL 跑出來。
--
※ 來源:‧杏林綠意 passion.tmu.edu.tw‧[FROM: 10.1.1.215]
討論串 (同標題文章)
完整討論串 (本文為第 8 之 8 篇):
FreeBSD 近期熱門文章
PTT數位生活區 即時熱門文章