Postfixと電子メール配信の統合

Postfixを使用して、Email Deliveryサービスを介してEメールを送信します。

電子メール配信を介した電子メール送信のためのPostfixの構成

Postfixは、電子メールをルーティングおよび配信する無料のオープン・ソースのメール転送エージェントです。これは、無料のソフトウェア・ライセンスであるIBM Public License 1.0でリリースされており、すでにインストールされている可能性があります。Postfixの詳細は、PostfixのWebサイトを参照してください。Postfixを使用すると、電子メール配信を使用して電子メールを送信できます。Postfixを使用する前に、PostfixアプリケーションでOracle Cloud Infrastructure Email Deliveryを構成する必要があります。

重要

これらの手順には、便宜上サンプル・コードが含まれており、参照用として使用します。クライアント・サポートについては、Postfixカスタマ・サポートに連絡してください。これらのステップは、Oracle Linux Serverリリース7.9のコンピュート・インスタンスとPostfixバージョン2.10.1でテストされました。
ノート

次の手順でファイルの場所を指定するために使用するパスとコマンドは、Ubuntu/Debianに固有です。ファイル・パスまたは編集コマンドは、使用しているOSによって異なる場合があります。構成ファイルへの変更は同じです。

Postfixで電子メール配信との統合を有効にするには:

  1. 電子メール配信が電子メールを送信するように構成されていることを確認します。開始を参照してください。

    ノート

    電子メール配信を使用するようにPostfixを構成するには、SMTP資格証明が必要です。「ユーザー設定」に表示されるSMTP資格証明の生成時には、SMTPユーザー名およびSMTPパスワードに注意してください。構成には、OCIユーザー・アイデンティティではなく、これらの特定の値が必要です。SMTP資格証明のパスワード資格証明が失われた場合は、新しい資格証明セットを作成する必要があります。

  2. main.cfファイルを開くには、次のコマンドを実行します:

    sudo vi /etc/postfix/main.cf

    次の情報をファイルの末尾に追加します:

    smtp_tls_security_level = may 
    smtp_sasl_auth_enable = yes 
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd 
    smtp_sasl_security_options =
  3. Email Deliveryでは、すべてのSMTP電子メール送信に対してセキュアなTLS暗号化(トランスポート・レベル・セキュリティ)が必要です。smtp_tls_security_level設定を使用して、OCI Email DeliveryなどのリモートSMTPサーバーへの接続時にPostfixでSTARTTLSサポートを使用するようにします:

    smtp_tls_security_level = may

    すべてのリモートサーバー通信でTLSの使用を強制するには、次の設定を使用します。

    smtp_tls_security_level = encrypt
    ノート

    デフォルトでは、Postfixクライアントは、許可される最大メッセージ・サイズが最初の拡張HELO (EHLO)レスポンスで受信されたサイズであることを前提としています。これは常に、デプロイメントのデフォルトである2MBになります。最大メッセージ・サイズ制限がこれより大きい場合は、このデフォルト値を無視するようにPostfixクライアントを構成する必要があります。/etc/postfix/main.cfファイルを編集して次を追加します:
    smtp_discard_ehlo_keywords = size
  4. SMTP接続エンドポイントおよびポートを含めるようにrelayhostを更新してから、ファイルを保存または更新します。たとえば、新しいデフォルトのメール送信ポート587を介してメッセージを送信するには、次を使用します。

    relayhost = smtp.email.us-ashburn-1.oraclecloud.com:587		
    ノート

    正しいエンドポイント値については、認証および接続エンドポイントを参照してください。ポート587を推奨するため、例に示すように、必要なエンドポイントの最後に":587"を追加します。
  5. main.cfと同じディレクトリにsasl_passwdファイルを作成します。

    次のコマンドを実行します。

    sudo vi /etc/postfix/sasl_passwd
  6. 次を入力して、リレー・ホストとポートを追加します:

    server:port user:pass

    ここでは:

    • serverはリレー・ホストで、portは25(できれば587)です。
    • userは作成したSMTPユーザー名、passはSMTP資格証明の生成時に受け取ったパスワードです。
  7. パスワード・ファイルの権限を付与します。

    次のコマンドを実行します。

    sudo chown root:root /etc/postfix/sasl_passwd && sudo chmod 600 /etc/postfix/sasl_passwd
  8. パスワード・ハッシュを生成します。

    次のコマンドを実行します。

    sudo postmap hash:/etc/postfix/sasl_passwd
  9. Postfixをリロードします。

    次のコマンドを実行します。

    sudo postfix reload
  10. テスト電子メールを送信して、構成をテストします。

    次のコマンドを実行します。

    echo "This is a test message" | mail -s "Test" -r <approved sender email address> <recipient email address>
    ノート

    一部のバージョンのmailおよびmailxでは、電子メールの送信者を設定する-rスイッチと、追加のヘッダーを作成する-aスイッチのいずれもサポートしていません。このような場合、送信者はオペレーティング・システムによって決定され、他の様々な方法で上書きできます。この場合、システム生成の電子メール・アドレスをオーバーライドする場合は、/etc/postfix/header_checksにあるリライト・ルールを使用できます。

    ログ内のstatus=sent (250 Ok)メッセージは、電子メールが正常に送信されたことを示しています。

ノート

一部の環境では、SASL認証を使用するには、cyrus-sasl-plainというRPMパッケージが必要です。SASL認証の構成に関するドキュメントは、PostFixのWebサイトを参照してください。

詳細情報

  • Postfix構成の詳細は、PostfixのWebサイトを参照してください。
  • Postfix SMTPクライアントのデフォルトのSMTP TLSセキュリティ・レベルの詳細は、smtp_tls_security_levelを参照してください。
  • リモートSMTPクライアントに対するSTARTTLSサポートの詳細は、smtpd_use_tlsを参照してください。この機能は Postfixバージョン2.2で導入されましたが、バージョン2.3以降は非推奨になりました。
  • 電子メール配信に関連するトラブルシューティング方法については、Postfixとの統合時のTLSエラーを参照してください。