検索

8.2. Postfix SMTP サーバーのインストールおよび設定

download PDF

電子メールメッセージを受信、保存、配信するように Postfix SMTP サーバーを設定できます。システムのインストール時にメールサーバーパッケージが選択されていない場合、Postfix はデフォルトで利用できません。Postfix をインストールするには、以下の手順を実行します。

前提条件

  • root アクセスがある。
  • システムを登録する
  • Sendmail を無効にして削除するには、以下を実行します。

    # yum remove sendmail

手順

  1. Postfix をインストールします。

    # yum install postfix
  2. Postfix を設定するには、/etc/postfix/main.cf ファイルを編集し、以下の変更を加えます。

    1. デフォルトでは、Postfix は loopback インターフェイスでのみメールを受信します。特定のインターフェイスをリッスンするように Postfix を設定するには、inet_interfaces パラメーターをこれらのインターフェイスの IP アドレスに更新します。

      inet_interfaces = 127.0.0.1/32, [::1]/128, 192.0.2.1, [2001:db8:1::1]

      すべてのインターフェイスをリッスンするように Postfix を設定するには、以下を設定します。

      inet_interfaces = all
    2. gethostname() 関数によって返される完全修飾ドメイン名 (FQDN) とは異なるホスト名を Postfix が使用するようにしたい場合は、myhostname パラメーターを追加します。

      myhostname = <smtp.example.com>

      たとえば、Postfix はこのホスト名を、処理するメールのヘッダーに追加します。

    3. ドメイン名が myhostname パラメーターのものと異なる場合は、mydomain パラメーターを追加します。

      mydomain = <example.com>
    4. myorigin パラメーターを追加し、mydomain の値に設定します。

      myorigin = $mydomain

      この設定では、Postfix はホスト名ではなく、ローカルで投稿されたメールの発信元としてドメイン名を使用します。

    5. mynetworks パラメーターを追加し、メールの送信が許可される信頼できるネットワークの IP 範囲を定義します。

      mynetworks = 127.0.0.1/32, [::1]/128, 192.0.2.1/24, [2001:db8:1::1]/64

      インターネットなどの信頼できないネットワークからのクライアントがこのサーバー経由でメールを送信できるようにする必要がある場合は、後の手順でリレー制限を設定する必要があります。

  3. main.cf ファイルの Postfix 設定が正しいか確認します。

    $ postfix check
  4. postfix サービスが起動時に開始できるように有効化し、開始します。

    # systemctl enable --now postfix
  5. smtp トラフィックがファイアウォールを通過することを許可し、ファイアウォールルールをリロードします。

    # firewall-cmd --permanent --add-service smtp
    
    # firewall-cmd --reload

検証

  1. postfix サービスが実行していることを確認します。

    # systemctl status postfix
    • オプション: 出力が停止し、待機中、またはサービスが実行されていない場合は、postfix サービスを再起動します。

      # systemctl restart postfix
    • オプション: /etc/postfix/ ディレクトリーの設定ファイル内のオプションを変更した後、postfix サービスをリロードして、これらの変更を適用します。

      # systemctl reload postfix
  2. システム上のローカルユーザー間の電子メール通信を確認します。

    # echo "This is a test message" | mail -s <SUBJECT> <user@mydomain.com>
  3. クライアント (server1) からメールサーバー (server2) へ、ドメイン外のメールアドレスにメールを送信して、メールサーバーがオープンリレーではないことを確認します。

    1. 次のように、server1/etc/postfix/main.cf ファイルを編集します。

      relayhost = <ip_address_of_server2>
    2. 次のように、server2/etc/postfix/main.cf ファイルを編集します。

      mynetworks = <ip_address_of_server2>
    3. server1 で、以下のメールを送信します。

      # echo "This is an open relay test message" | mail -s <SUBJECT> <user@example.com>
    4. /var/log/maillog ファイルを確認します。

      554 Relay access denied - the server is not going to relay.
      250 OK or similar - the server is going to relay.

トラブルシューティング

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

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.