我必须将所有无效的传入消息发送到新地址,我有一条这样的路线。
虚拟别名: 驱动程序 = 重定向 允许延迟 允许失败 域 = lsearch; /etc/用户域 用户 = “${查找\ {$域名} \ lsearch{/etc/用户域} \ {$值} \ }” 组 = “${查找\ {$域名} \ lsearch{/etc/用户域} \ {$值} \ }” 地址数据 = \ “路由器=$路由器名称\ 重定向=${quote:${查找\ {$本地部分} \ lsearch{${extract{5}{::}{${lookup passwd{${lookup{$domain}lsearch{/etc/userdomains}{$value}}}{$value}}}/etc/${perl{untaint}{$domain}}/aliases} \ }}” 数据 = ${extract{redirect}{$address_data}} 文件传输 = 地址文件 router_home_directory = ${extract \ {5} \ {::} \ {${查找密码 \ {${查找 \ {$域名数据} \ lsearch{/etc/用户域} \ {$值} \ }} \ {$值} \ }} \ } 本地部分后缀 = +* local_part_suffix_可选 重试_使用_本地_部分 看不见 用户转发: 驱动程序 = 重定向 允许过滤器 允许失败 禁止过滤器运行 禁止过滤_perl 禁止过滤查找 禁止过滤器读取文件 禁止过滤读套接字 检查祖先 检查本地用户 域 = $primary_hostname 无表达式 需要文件 = “+$home/.forward” 条件 = “${extract{size}{${stat:$home/.forward}}}” 文件 = $home/.forward 文件传输 = 地址文件 reply_transport = address_reply 目录传输 = 地址目录 用户 = $local_part_data 组=$local_part_data 未验证
以用户身份归档:[电子邮件保护],用户 *::失败:任何消息
这里我的正常转发有效,但这个 * 转发无效
答案1
只需使用nwildlsearch
而不是lsearch
并将*
条目放在文件底部。
答案2
應該是這樣的。
catchall:
driver = redirect
domains = lsearch;/etc/userdomains
address_data = \
"router=$router_name \
redirect=${quote:${lookup \
{invalid_accept} \
lsearch{${extract{5}{::}{${lookup passwd{${lookup{$domain}lsearch{/etc/userdomains}{$value}}}{$value}}}}/etc/${perl{untaint}{$domain}}/aliases} \
}}"
data = ${extract{redirect}{$address_data}}
allow_fail
这是完美的方式,在文件中应该是这样的
invalid_accept : :fail:Whatever act you want I shown here failed act