Dovecot 命名空間前綴與底層 Maildir 結構的關係
我試圖弄清楚文件系統結構和 dovecot 的命名空間前綴之間是否/什麼有聯繫。具體來說,在我的設置中,我沒有聲明任何命名空間,所以 dovecot 創建了一個預設命名空間。每當新使用者首次登錄時,其郵件目錄中的文件夾結構為:
Maildir/ ... cur new .Sent Items .Drafts .Junk E-mail .Deleted Items ...
當我從電子郵件客戶端登錄時,我看到這些郵箱:
INBOX Sent Items Drafts Junk E-mail Deleted Items
我的問題是:
1.INBOX郵箱不應該是“.INBOX”目錄嗎?通過查看內容,我看到 INBOX 郵箱從“cur”目錄中獲取其項目。為什麼 INBOX 郵箱有這個例外?
2.如果我用inbox=yes 和prefix=FOO 定義了一個顯式的私有命名空間,如果有的話,這會對文件夾結構和客戶端郵箱顯示產生什麼影響?本質上,我無法弄清楚命名空間前綴的用途,以及它是否用於命名使用者 Maildir 中的實際目錄。
謝謝
編輯:閱讀答案並進行更多探勘後,我仍然遇到這個問題:IMAP 郵箱/文件夾在 Maildir 目錄中有相應的 fs 目錄,(例如,當使用者(從他們的 IMAP 客戶端)創建頂級文件夾/郵箱,比如說“Important”,在 Maildir 下創建了一個“.Important”目錄。因此,每個 IMAP 郵箱/文件夾的映射目錄都是 Maildir 的子目錄。除了 INBOX 郵箱:其對應的目錄是 Maildir 本身。我想將 INBOX 目錄設置為 Maildir 的子目錄,因為它適用於所有其他郵箱。我根本不使用 mbox。我想做的事情是否有意義,如果是,我該怎麼做?
INBOX郵箱不應該是“.INBOX”目錄嗎?
可能,但通常
~/Maildir/[new|cur|tmp]
是收件箱的組成部分。與所有事情一樣,您可以對 Dovecot 進行不同的配置,以匹配您希望發送和儲存電子郵件的方式。
~/Maildir/INBOX/[new|cur|tmp]
是完全可能的。請注意,這應該與您的傳入 SMTP 伺服器(或 LDA)的配置方式相匹配,以將新電子郵件也儲存在磁碟上……文件夾是原始Maildir 格式的擴展,稱為 Maildir++,如此處所述。IMAP 文件夾被實現為具有命名約定的子目錄
Maildir/.<Folder Name>
和Maildir/.<Folder Name>.<Sub Folder>
.IMAP 文件夾本身也是 Maildir 目錄,因為它們還包含 cur、new 和 tmp 子目錄,即
Maildir/.<Folder Name>/[cur|new|tmp]/
根據您的需要,您可以通過在 Dovecot配置設置中
Maildir/<Folder Name>/<Sub folder>
包含該選項來更改它。儘管我真的不認為有必要,因為無論如何您都不應該通過文件系統管理您的郵件。LAYOUT=fs``mail_location
如果我使用 inbox=yes 和 prefix=FOO 定義顯式私有命名空間,如果有的話,這會對文件夾結構和客戶端郵箱顯示產生什麼影響?
在磁碟上的文件夾結構上,幾乎沒有,由
mail_location
命名空間中的設置和 layout=FS 選項的存在或不存在來配置。使用 inbox=yes 創建命名空間會使該命名空間成為收件箱。一個使用者只能有一個收件箱。您需要確保收到的郵件也能在那裡投遞,這樣才有用。具有兩個命名空間的範例是經典的 mbox 文件,即 INBOX 和 Maildir,在使用者主目錄中以 Maildir 格式保存所有 IMAP 文件夾:
namespace { separator = / prefix = "#mbox/" location = mbox:~/mail:INBOX=/var/spool/mail/%u inbox = yes hidden = yes list = no } namespace { separator = / prefix = location = maildir:~/Maildir }
前綴用於來自 Dovecot 的 NAMESPACE 響應,其效果將取決於 IMAP 客戶端。有關名稱空間的用途,請參閱RFC 2342 。
本質上,我無法弄清楚命名空間前綴的用途,以及它是否用於命名使用者 Maildir 中的實際目錄。
Dovecot 對 IMAP 協議的命名空間擴展也有很多話要說。