postfixでメール転送時にspfがfailになるため、postsrsdをインストールする

単純にpostfixで受信したドメインAへのメールを、ドメインBに転送します。

すると、メール送信元ドメインのspfレコードにドメインAのIPアドレスが含まれるかをチェックするため、アンマッチとなってしまいます。Return-Pathを参照しているためですね。

解決策として、sender_canonical の設定を行ったりしていたのですが、SRSを利用すればもっと簡単に行える事を知ってpostsrsdを導入してみました。

インストール

sudo apt install postsrsd

そうすると、

postconf -h mydomain

で設定されたドメインで初期設定されて起動します。
問題なければそのままでOKです。

ドメインを変更する場合

/etc/default/postsrsd

これが設定ファイルになるので、

SRS_DOMAIN

の値を任意のドメインに変更するだけでした。

変更後は

sudo systemctl restart postsrsd

で再起動します。

postfixの設定

/etc/postfix/main.cf

に以下の設定を追記。

sender_canonical_maps = tcp:localhost:10001
sender_canonical_classes = envelope_sender
recipient_canonical_maps = tcp:localhost:10002
recipient_canonical_classes= envelope_recipient,header_recipient

最後にpostfixを再起動します。

sudo systemctl restart postfix

これだけの設定で、転送時にReturn-Pathが正しく設定され、転送サーバであるドメインAのspfレコードが参照されるようになり、spfのチェックをpassできます。