sendmailで特定ドメインのみ外部サーバへ転送する方法について
こんにちは、技術部のshoriと申します。
今日はsendmailを使用しているサーバから特定ドメインのみpostfixを使用しているサーバへ移行しようとした時の話をしたいと思います。
作業自体は、移行先サーバにも同じメールアカウントを作成してmxレコードを切り替えるという内容です。
ただ、mxレコードを切り替えを早くする為にTTLを短くしても反映にはそれなりの時間がかかります。
そこで切り替え中に移行前サーバへ届いたメールを移行先サーバへリレーする設定をします。
今回例として移行先サーバIPを[111.111.111.111]として設定を行っていきます。
※環境によって設定が異なることもあるため、下記はあくまでも一例です。
①/etc/mail/sendmail.mcでaccessとmailertableが有効になっている事を確認
- # grep “access_db” /etc/mail/sendmail.mc
- ——————————————————————————————
- FEATURE(`access_db’, `hash -T<TMPF> -o /etc/mail/access.db’)dnl
- ——————————————————————————————
- # grep “mailertable” /etc/mail/sendmail.mc
- ——————————————————————————————
- FEATURE(`mailertable’, `hash -o /etc/mail/mailertable.db’)dnl
- ——————————————————————————————
②/etc/mail/mailertableで対象ドメイン宛てのメールを移行先サーバへ中継する設定
- # vi /etc/mail/mailertable
- ——————————————————————————————
- hogefuga.jp smtp:[111.111.111.111]
- ——————————————————————————————
- # makemap hash /etc/mail/mailertable < /etc/mail/mailertable
③/etc/mail/accessで対象ドメイン宛てのメールのリレーを許可
- # vi /etc/mail/access
- ——————————————————————————————
- TO:hogefuga.jp RELAY
- ——————————————————————————————
- makemap hash /etc/mail/access < /etc/mail/access
④/etc/mail/virtusertableに記載されている対象アカウントを無効化
- vi /etc/mail/virtusertable
- ——————————————————————————————
- #info@hogefuga.jp
- #test@hogefuga.jp ←対象ドメインのアカウントをコメントアウトすればOKです。
- #hello@hogefuga.jp
- ——————————————————————————————
⑦/etc/mail/local-host-namesに記載されている対象ドメインを無効化
- vi /etc/mail/local-host-names
- ——————————————————————————————
- #hogefuga.jp ←対象ドメインのアカウントをコメントアウトすればOKです。
- ——————————————————————————————
⑧sendmailコマンドでちゃんとリレー出来ているか確認
- # sendmail -bv info@hogefuga.jp
- ——————————————————————————————
- info@hogefuga.jp … deliverable: mailer smtp, host [111.111.111.111], user info@hogefuga.jp
- ——————————————————————————————
- 上記のように移行先サーバのIPアドレスが表示されていればOKです。
これで移行前サーバにメールが届いても移行先サーバへリレーしてくれるようになります。
今回、ファイル編集前のバックアップ取得は割愛しましたが、ファイルなどを修正する際は必ずバックアップを取るようにしましょう。
あと、検証サーバで一回試すのも大切です。