如何转发 exim 中所有无效的来信

如何转发 exim 中所有无效的来信

我必须将所有无效的传入消息发送到新地址,我有一条这样的路线。

虚拟别名:
    驱动程序 = 重定向
    允许延迟
    允许失败
    域 = 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

相关内容