我想要一个设置,其中像[email protected]这样的电子邮件将邮件redirect到foo文件夹。 我已经configuration并testing了鸽舍。 它被master.cf中的这一行用postfix调用:
dovecot unix - nn - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -n -m ${extension}
我希望${extension}展开为'foo',但它总是空的。
我已经添加
recipient_delimiter = +
到我的main.cf。
我怎样才能使它工作?
我有一个全面的别名,将@ example.comredirect到[email protected]。 看来这个扩展是空的,因为这个。 因此,问题就变成了: 我可以使用[email protected]到[email protected],而不显式定义random或ext部分吗?
您将需要使用正则expression式图来运作。
这里是Wietse在这个问题上的一个post的片段。
您可以使用正则表格而不是固定string映射,并执行任意地址转换:
/\+([^+]+)@example\.com$/ localuser2+$1localhost
您可以在regex101中获得regexscheme的解释 。 简而言之,方括号()将捕获扩展名并将其传递给您的别名。
我有一个类似的设置使用Postfix和CourierIMAP。 你可以尝试使用procmail来处理这个问题。 我设置了一个通配符,以便所有邮件都发送给一个用户,然后使用procmail规则将电子邮件根据发送到的地址过滤到各个文件夹中。
例如,这会将电子邮件过滤到adsense或google @ domain.com到Google文件夹中:
:0 * ^(To|CC|BCC).*(adsense|google)\@domain\.com .Google/
为了扩大你的目的,你可以使用更高级的规则,像这样:
:0 * ^(To|CC|BCC).*user\+\/.*\@domain\.com .`echo $MATCH | sed 's/\@.*//'`/
但是,请注意该文件夹将区分大小写,您需要确保该文件夹已被创build。 你可以得到更高级的,只是脚本来创build文件夹,如果有必要,它们还不存在。