すべての無効な着信を新しいアドレスに送信する必要があり、次のようなルートがあります。
仮想エイリアス: ドライバー = リダイレクト 延期を許可する 許可_失敗 ドメイン = lsearch;/etc/userdomains ユーザー = "${lookup \ {$ドメイン} \ lsearch{/etc/userdomains} \ {$値} \ }" グループ = "${lookup \ {$ドメイン} \ lsearch{/etc/userdomains} \ {$値} \ }" アドレスデータ = \ "ルーター=$router_name \ リダイレクト=${引用:${検索\ {$local_part} \ lsearch{${extract{5}{::}{${lookup passwd{${lookup{$domain}lsearch{/etc/userdomains}{$value}}}{$value}}}}/etc/${perl{untaint}{$domain}}/aliases} \ }}" データ = ${抽出{リダイレクト}{$address_data}} file_transport = アドレスファイル router_home_directory = ${抽出\ {5} \ {::} \ {${パスワード検索\ {${検索\ {$ドメインデータ} \ lsearch{/etc/userdomains} \ {$値} \ }} \ {$値} \ }} \ } ローカルパーツサフィックス = +* ローカルパーツサフィックスオプション ローカルパーツの使用を再試行する 見えない ユーザー転送: ドライバー = リダイレクト 許可フィルター 許可_失敗 フィルタ実行を禁止する 禁止フィルター フィルタルックアップを禁止する ファイルの読み取りを禁止する フィルター読み取りソケットを禁止する 祖先をチェック ローカルユーザーをチェック ドメイン = $primary_hostname なし require_files = "+$home/.forward" 条件 = "${extract{size}{${stat:$home/.forward}}}" ファイル = $home/.forward file_transport = アドレスファイル reply_transport = アドレス返信 directory_transport = アドレスディレクトリ ユーザー = $local_part_data グループ = $local_part_data 検証しない
ユーザーとしてファイル:[メールアドレス]、ユーザー*: ::fail:任意のメッセージ
ここでは通常の転送は機能しますが、これは機能しません
答え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