Postfix で列挙が必要な設定項目で、正規表現が利用できると簡単に記述できる項目がある。ただし、あまり長い正規表現は書きたくない場合は、PCRE がオススメだ。

ここでは、mydestination を PCRE で表現する方法を説明しようと思う。

 

 

インストール

Postfix 用の正規表現モジュールをインストールする。

sudo dnf install postfix-pcre

 

 

書き換え

仮に mydestination に以下のモノを列挙したい場合。

127.0.0.0/8
192.168.0.0/16
localhost
localhost.localdomain
hoge.com
mail.hoge.com

コレを正規表現として PCRE ファイルに書き換える

/^127\.\d+\.\d+\.\d+$/ ACCEPT
/^192\.168\.\d.\d+$/ ACCEPT
/^localhost(\.localdomain)?$/ ACCEPT
/^(mail\.)?hoge\.com$/ ACCEPT

コレを「/etc/postfix/mydestinations.pcre」として保存する。

※ 正規表現のあとに書かれている「ACCEPT」は「OK」などと書いても問題ありません。
※ 適応するパラメーターが ACCESS(5) に準拠している場合は、コチラをご覧ください。

※ PCRE の詳しい説明はコチラでご覧下さい。
※ 正規表現の詳しい説明はコチラでご覧下さい。
※ 基本的には、該当する正規表現だけを記述して下さい。

 

 

適応

上記で作成した「/etc/postfix/mydestinations.pcre」を「/etc/postfix/main.cf」の「mydestination」に反映させます。

mydestination = pcre:/etc/postfix/mydestinations.pcre

編集し終えた後に、Postfix を再起動します。

sudo systemctl restart postfix

 

 

テスト

PCRE の記述が正しく行われているかどうかのテストを行います。

# postmap -q localhost pcre:/etc/postfix/mydestinations.pcre
ACCEPT
# postmap -q 127.0.0.1 pcre:/etc/postfix/mydestinations.pcre
ACCEPT
# postmap -q google.co.jp pcre:/etc/postfix/mydestinations.pcre
#

うまく動作している事が確認できました。