后缀:通过“ +”号限制每个用户的地址


10

Gmail用户可以使用(“加地址”)获得几乎无限的电子邮件地址$name+$suffix@gmail.com

我想在运行Postfix的我自己的邮件服务器上使用它。邮箱和别名数据存储在MySQL数据库中。

我怀疑需要修改别名配置,以便user+foo@example.org将其映射到user@example.org邮箱,但是我无法找到方法。

那么,有可能吗?怎么样?

Answers:


13

除了设置

recipient_delimiter = +

我还必须修改master.cf,以便maildrop不仅可以传递传递的收件人,还可以传递真实的用户:

maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=Debian-exim argv=/usr/bin/maildrop -d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop}

博客文章:http : //cweiske.de/tagebuch/postfix-plus-addressing.htm


您询问了有关SMTP服务器的问题postfix,但这里提到了exim。顺便说一句,请注意,如果您拥有真正的IMAP服务器(而不仅仅是邮箱),则使用LMTP速度比maildrop快得多。而且,如果您将LMTP与Cyrus结合使用,则不需要此功能。
mvp 2013年

1
用户是debian-exim,但仍然是后缀。
cweiske 2013年


拯救了我的一天{nexthop}。我什至不知道那存在。谢谢。
TCB13'1

感谢您的回答。这对我帮助很大。我在virtualmin服务器中使用postfix + procmail + dovecot。我刚刚添加了“ recipient_delimiter = +”行,并且加号地址看起来工作正常。我应该对procmail或dovecot进行其他操作吗?另外,是否可以在域范围内进行限制?这样我就可以仅对服务器上的某些域启用此加寻址功能?谢谢。
Vishnu

3

您没有说什么邮件服务器存储您的电子邮件。这些天,它应该是IMAP服务器之一,例如Cyrus,Dovecot,Courier等。

我个人喜欢Cyrus IMAP。它相对容易地支持这一点:

加上地址 -允许直接传递到特定的邮箱(INBOX除外)。这是通过以下形式的地址完成的:username + mailfolder @ domain,它将传递到用户的INBOX.mailfolder文件夹(或等效于altnamespace)。此子邮箱必须允许发布用户具有“ p”权限。

添加“ p”权限是重要的步骤-否则,所有邮件(+无论是否使用)都将传递到用户名INBOX。

请注意,您应该使用LMTP(本地邮件传输协议),以传递邮件postfixIMAP服务器,并还需要配置后缀recipient_delimiter(或recipient_delimiters如)在这里描述

recipient_delimiter = +

只要由于接收服务器无法识别邮件地址而导致邮件无法到达用户/邮件投递,IMAP服务器支持就无关紧要。
cweiske 2013年

感谢您提供有关“加地址”的提示。用这个名字,我找到了解决方案。
cweiske 2013年

2

master.cfDovecot 的生产线:

dovecot   unix  -       n       n       -       -       pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver
 -f ${sender} -a ${recipient} -d ${user}@${domain}

在Postfix 2.4及更早版本中,使用${nexthop}代替${domain}

http://wiki2.dovecot.org/LDA/Postfix


谢谢。的想法,如果您使用Dovecot,仅postfix解决方案是不够的。您将需要针对Dovecot的此额外配置。
David Verdin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.