后缀中的正则表达式多个捕获全部设置

后缀中的正则表达式多个捕获全部设置

我需要在 Postfix 上设置一个正则表达式捕获所有函数,以便:

在 Postfix 中如何实现这一点?

答案1

将其添加到您的 main.cf:

alias_maps = regexp:/etc/postfix/aliases

然后创建/etc/postfix/aliases如下:

/^tom\..*@domain.com$/     [email protected]
/^phil\..*@domain.com$/    [email protected]

查看正则表达式表文档以获取更多信息。

答案2

对于那些想知道是否可以用较少的配置处理多个地址别名的人,我会添加这一点:

/^(.*)\..*@domain.com$/     [email protected]

这将转发:

<anything>.<part_b>@domain.com

<anything>@other.com

答案3

我不知道 Postfix,但你正在寻找的正则表达式是:

/^.*(\..*)@(domain).com$/

然后用任何内容(空字符串)替换第一个匹配的组,用“其他”替换第二个组。

举个例子,在 Perl 中你可以这样做:

my $regex = '^.*(\..*)@(domain).com$';

$your_string =~ /$regex/;
$aux = $2;
$your_string =~ s/$1//;
$your_string =~ s/$aux/other/;

print $your_string;

当然,这仅在电子邮件地址的域为“domain”时才有效。如果您希望域为任意值,则正则表达式应为:

^.*(\..*)@(.*).com$

相关内容