2.4. すべての電子メールをメールリレーに転送するように Postfix を設定する

すべての電子メールをメールリレーに転送する場合は、Postfix サーバーを Null クライアントとして設定できます。この設定では、Postfix はメールを別のメールサーバーに転送するだけで、メールの受信はできません。

前提条件

  • root アクセスがある。
  • サーバーに postfix パッケージがインストールされている。
  • メールを転送するリレーホストの IP アドレスまたはホスト名がある。

手順

  1. Postfix がローカルの電子メール配信を受け入れ、それが Null クライアントになるのを防ぐには、/etc/postfix/main.cf ファイルを編集し、以下の変更を加えます。

    1. mydestination パラメーターを空の値に等しくなるように設定して、すべてのメールを転送するように Postfix を設定します。

      mydestination =

      この設定では、Postfix サーバーはメールの宛先ではなく、null クライアントとして機能します。

    2. Null クライアントからメールを受信するメールリレーサーバーを指定します。

      relayhost = <[ip_address_or_hostname]>

      リレーホストはメール配信を行います。<ip_address_or_hostname> を角括弧で囲みます。

    3. メールを配信するために、ループバックインターフェイスでのみリッスンするように Postfix メールサーバーを設定します。

      inet_interfaces = loopback-only
    4. Postfix がすべての送信メールの送信者ドメインをリレーメールサーバーの企業ドメインに書き換えるには、以下を設定します。

      myorigin = <relay.example.com>
    5. ローカルメール配信を無効にするには、設定ファイルの最後に次のディレクティブを追加します。

      local_transport = error: local delivery disabled
    6. mynetworks パラメーターを追加して、Postfix が 127.0.0.0/8 IPv4 ネットワークと [::1]/128 IPv6 ネットワークから送信されたローカルシステムからの電子メールをメールリレーサーバーに転送するようにします。

      mynetworks = 127.0.0.0/8, [::1]/128
  2. main.cf ファイルの Postfix 設定が正しいか確認します。

    $ postfix check
  3. postfix サービスを再起動して変更を適用します。

    # systemctl restart postfix

検証

  • 電子メール通信がメールリレーに転送されていることを確認します。

    # echo "This is a test message" | mail -s <SUBJECT> <user@example.com>

トラブルシューティング

  • エラーが発生した場合は、/var/log/maillog を確認してください。

関連情報

  • /etc/postfix/main.cf 設定ファイル