それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Postfix で正規表現(PCRE)を使う。書き方とシンタックスチェック

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のほうが管理しやすいのでそっちがおすすめ。

参考資料

https://www.magic-object.mydns.jp/fedora26_postfix_pcre/