Dovecot - 加號登錄郵箱名稱
我有一個用於 SMTP 的 Postfix 和用於郵件儲存的 Dovecot 的郵件伺服器(郵箱儲存在 MySQL db 中)。其中一位使用者創建了帶有加號的郵箱,如下所示:
peter+bob@example.com
Dovecot 似乎沒有像往常一樣處理該郵箱名稱。當我嘗試使用 doveadm 查找該郵箱時,它失敗了
# doveadm user peter+bob@example.com field valueuserdb lookup: user peter+bob@example.com doesn't exist
另一方面,當我使用萬用字元進行查找時,它會顯示:
# doveadm user 'peter*bob@example.com' peter+bob@example.com # doveadm user '*@example.com' peter@example.com (...) peter+bob@example.com
無論如何 - 帶有加號的郵箱無法使用,您無法登錄。
當郵件發送到該郵箱時 - Postfix 將其視為任何其他郵件,因此它將其轉發到 Dovecot(在我的情況下通過 LMTP)到郵箱 peter+bob@example.com。但是 Dovecot 試圖將其發送到 peter@example.com(忽略以加號開頭的所有內容)。
似乎 Dovecot 正在處理 Gmail 或其他郵件伺服器等加號:
https://notfaq.wordpress.com/2006/07/20/plus-sign-in-email-addresses/ http://gmailblog.blogspot.cz/2008/03/2-hidden-ways-to-get-more-from-your.html
我的問題是:
- Dovecot 真的像我描述的那樣以特殊的方式對待加號,還是這是某種不當行為?我搜尋了 Dovecot 文件並沒有找到任何東西,我在搜尋網路時也沒有找到任何有用的東西。
- 如果這是一項功能,是否可以禁用它(因此“+”號不會被特別對待)?
mailbox+aextension@example.com
傳遞給的功能mailbox@example.com
稱為*“子定址”* 或*“加定址” ,在*Wikipedia上有很好的描述。高級使用者發現它非常有用,如果您已經擁有大量現有使用者群,您可能會在禁用它時三思而後行,因為禁用它可能會破壞比它修復的更多。恕我直言,您應該修補您的郵箱配置前端以使用 a 來拒絕郵箱名稱
+
。在後綴子定址中配置了
recipient_delimiter
,只需刪除該指令,子定址將被禁用。正如我已經提到的,子定址非常有用,您可能想研究 Dovecot 目前如何處理子定址,因為手冊提供了不同的選項。
以下內容會將郵件遞送到使用者郵箱中
user+extension@exampel.com
指定的特定文件夾:extension
dovecot unix - nn - - 管道標誌=DRhu 使用者=vmail:vmail argv=/usr/local/libexec/dovecot/dovecot-lda -f $ {sender} -d $ {user}@${nexthop} -m ${extension}
或者如果你有一個 INBOX/ 命名空間前綴:
dovecot unix - nn - - 管道標誌=DRhu 使用者=vmail:vmail argv=/usr/local/libexec/dovecot/dovecot-lda -f $ {sender} -d $ {user}@${nexthop} -m INBOX/${extension}
或者 Dovecot 可以完全忽略擴展並將所有消息傳遞到主收件箱
dovecot unix - nn - - 管道標誌=DRhu 使用者=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -f $ {sender} -a $ {收件人} -d $ {user}@ $ {下一跳}