我有一个邮件服务器与邮政编译与SMTP和Dovecot的邮件存储(邮箱存储在MySQL数据库)。 其中一个用户在其名称中创build了带有加号的邮箱,如下所示:
鸽舍似乎没有像往常一样处理邮箱的名字。 当我尝试查找与doveadm邮箱,它失败
# doveadm user [email protected] field valueuserdb lookup: user [email protected] doesn't exist
另一方面,当我用通配符进行查找时,会显示:
# doveadm user 'peter*[email protected]' [email protected] # doveadm user '*@example.com' [email protected] (...) [email protected]
无论如何 – 加号的邮箱是不可用的,你不能login到它。
当邮件发送到那个邮箱 – Postfix把它当作任何邮件处理,所以它把它转发到Dovecot(在我的情况下通过LMTP)到邮箱[email protected]。 但是Dovecot试图把它交给[email protected](忽略以加号开头的所有内容)。
似乎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-更从-your.html
我的问题是:
[email protected]传递给[email protected]function称为“子寻址”或“加上寻址” ,在Wikipedia上有很好的描述。
高级用户觉得它非常有用,如果你已经拥有一个庞大的现有用户群,你可能会考虑禁用它,因为禁用这个用户群可能会比修复它更多。 恕我直言,你应该补丁你的邮箱configuration前端拒绝邮箱名称与+ 。
在后缀子寻址configuration与recipient_delimiter ,只需删除该指令和子寻址将被禁用。
正如我已经提到的,子寻址是非常有用的,你可能想要调查Dovecot目前如何处理子寻址,因为手册提供了不同的选项。
以下内容将邮件[email protected]发送到用户邮箱中的特定文件夹extension :
dovecot unix -nn – – pipe flags = DRhu user = vmail:vmail argv = / usr / local / libexec / dovecot / dovecot-lda -f $ {sender} -d $ {user} @ $ {nexthop} -m $ {延期}
或者如果你有一个INBOX /命名空间前缀:
dovecot unix – nn – – pipe flags = DRhu user = vmail:vmail argv = / usr / local / libexec / dovecot / dovecot-lda -f $ {sender} -d $ {user} @ $ {nexthop} -m INBOX / $ {}扩展
或Dovecot可以完全忽略扩展,并将所有消息发送到主INBOX
dovecot unix -nn – – pipe flags = DRhu user = vmail:vmail argv = / usr / lib / dovecot / dovecot-lda -f $ {sender] -a $ {recipient} -d $ {user} @ $ {nexthop}