Postfix で正規表現(PCRE)を使う
regexは初期状態で使える。しかし使いやすいPCREはインストールが必要だった。
apt install postfix-pcre
PCRE の指定
mainc.cf などで正規表現を使うときは、ファイルの接頭辞に pcre:
を使う。ファイルの拡張子は任意。
pcre:/etc/postfix/mydestinations.pcre
PCRE の書き方
たとえば、header_check
の場合は次のように書く。後方参照も利用可能だ。
/Delivered-To: takuya_XX(.+)@example.com/ BCC $1@u01.lxd /Delivered-To: (.+)_xxx@/ DISCARD
利用場面によって、記述方法は変わる。alias
なども便利だ。正規表現でaliasするくらいなら別の場所でフィルタしたほうがいいと思うが。
シンタックスとテスト
PCRE が正しく動いているか、メールを配送してテストしていると煩雑なので記述のチェック方法を覚えておく。 テストする方法を調べると、メモ残してる人がいて感謝
REGEXPとPCRE の記述が正しく行われているかどうかのテストを行います。
## pcre postmap -q takuya@example.com pcre:/etc/postfix/my_checks.pcre ## regex postmap -q takuya@example.com regexp:/etc/postfix/my_checks.pcre ## postmap -q example.com regexp:/etc/postfix/my_distinartions.regex
これで、メールの配送や受信、送信について正規表現であれこれ設定できる。
ちなみに、BCCするなど、メールボックスへ配送する際に処理を入れる場合、Dovecot+Sieveのほうが管理しやすいのでそっちがおすすめ。