Email
集成多個郵箱(dovecot、Exim、maildir)
中斷後,我最終在不同的機器上為每個使用者創建了 2 個郵箱。我現在已經關閉了中間機器,並將郵箱放在真實伺服器上
/srv/scratch/$username/Maildir/...
,並且需要將來自它們的消息整合到使用者的規範郵箱中,最好保留已讀/已查看狀態,/srv/mail/$username/Maildir/...
. 我不喜歡這是作為子文件夾還是在他們的主收件箱中,但是我相信臨時郵箱本身都不包含子文件夾。(如果他們這樣做,就更愚弄使用者,他們被明確告知不要在臨時帳戶上這樣做!)有沒有一種好的方法可以最大限度地減少郵件失去的風險,並意味著他們的客戶在重新連接時會自動選擇新的文件夾/消息(無論它需要是什麼)?或者,在將新消息轉儲到 Maildirs 後,我需要做什麼來告訴 Dovecot?
兩台伺服器都是使用 Exim4 建構的,用於傳遞,Dovecot 用於 IMAP。
我會使用幾乎 Maildir 傳遞規範編寫腳本將文件移動到位,這涉及使用 tmp/ 目錄,然後重命名為 new/ 目錄,但為此您需要重命名為 cur/ 或 new/ 目錄,具體取決於原始文件在哪裡。
鑑於文件名嵌入了時間戳,您應該很少(零)衝突,但偏執是好的。將文件寫入 tmp/; 如果這是一個 cur/ 文件,則將狀態後綴保存在文件名之外;是否移動到 new/ 或 cur/ 檢查 new/ 中是否存在相同名稱或 cur/ 中是否存在相同前綴;然後根據需要重命名。
注意不要因為記憶體崩潰而失去 cur/-in-tmp/ 上的後綴;所採取的所有操作的日誌文件日誌將幫助您在出現問題時重建。