為什麼 dovecot 2.2.13 沒有將電子郵件從 new/ 移動到 cur/?
我在 gentoo 64 位上使用 dovecot 2.2.13。
當新電子郵件到達時,它會保留在 new/ 目錄中,而不是移動到 cur/ 目錄中。我讀到
maildir_empty_new = yes
已添加/etc/dovecot/conf.d/10-mail.conf
但不起作用。我是否還必須取消註釋其他內容才能使其正常工作(或評論其他內容)?這對我很重要,因為只有當我使用郵件客戶端檢查新電子郵件時,dovecot-uidlist 才會更新為下一個 UID。我有一些 procmail 管道腳本,我需要下一個 uid(我通過解析 dovecot-uidlist 得到)。
也許我可以
doveadm
與我的管道腳本一起使用,以便從 new/ 移動到 cur/,然後更新 dovecot-uidlist。這是我的
dovecot -n
:# 2.2.13: /etc/dovecot/dovecot.conf # OS: Linux 3.16.5-gentoo x86_64 Gentoo Base System release 2.2 auth_mechanisms = plain login digest-md5 first_valid_gid = 500 last_valid_gid = 2000 last_valid_uid = 2000 login_greeting = Santa server is ready. mail_gid = vmail mail_location = /var/vmail/%d/%n/:INDEX=/var/vmail/%d/%n/indexes mail_uid = vmail maildir_empty_new = yes managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave duplicate namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } service auth-worker { user = vmail } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } unix_listener auth-userdb { group = vmail mode = 0666 user = vmail } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0666 user = postfix } } ssl_ca = </etc/ssl/dovecot/server.in.crt ssl_cert = </etc/ssl/dovecot/server.csr.rapid ssl_key = </etc/ssl/dovecot/server.key.rapid ssl_key_password = pass userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql }
更新
我在 dovecot 網站上找到了這個:
~/Maildir/new、~/Maildir/cur 和 ~/Maildir/tmp 目錄包含收件箱的消息。tmp 目錄在投遞過程中使用,新消息以 new 到達,讀取的消息將由客戶端移動到 cur。
因此,將新消息移動到 cur 似乎不是預設的鴿舍行為。
如果我能以某種方式手動執行此操作,但會更新 dovecot-uidlist,那就太好了。
如果要使用 maildir 格式,則需要在配置中指定。嘗試改變:
mail_location = /var/vmail/%d/%n/:INDEX=/var/vmail/%d/%n/indexes
到:
mail_location = maildir:/var/vmail/%d/%n/:INDEX=/var/vmail/%d/%n/indexes
我使用 procmail 並將 MAILDIR 指定為
$HOME/Maildir/
. 郵件$HOME/Maildir/new
以1417748317.25141_1.myhost
. 當我拿起 dovecot 的郵件時,將它們移動到文件名$HOME/Maildir/new
並附:2,
加到文件名中。當文件被讀取時,附加標誌。我不需要知道 dovecot 的 uid 來處理消息。我有 procmail 將郵件過濾到其他郵箱中,並且在不知道該文件夾的 dovecot 的 UID 的情況下處理得很好。