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で電子メール配信との統合を有効にするには:
-
電子メール配信が電子メールを送信するように構成されていることを確認します。開始を参照してください。
ノート
電子メール配信を使用するようにPostfixを構成するには、SMTP資格証明が必要です。「ユーザー設定」に表示されるSMTP資格証明の生成時には、SMTPユーザー名およびSMTPパスワードに注意してください。構成には、OCIユーザー・アイデンティティではなく、これらの特定の値が必要です。SMTP資格証明のパスワード資格証明が失われた場合は、新しい資格証明セットを作成する必要があります。
-
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 =
-
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
-
SMTP接続エンドポイントおよびポートを含めるように
relayhost
を更新してから、ファイルを保存または更新します。たとえば、新しいデフォルトのメール送信ポート587を介してメッセージを送信するには、次を使用します。relayhost = smtp.email.us-ashburn-1.oraclecloud.com:587
-
main.cf
と同じディレクトリにsasl_passwd
ファイルを作成します。次のコマンドを実行します。
sudo vi /etc/postfix/sasl_passwd
-
次を入力して、リレー・ホストとポートを追加します:
server:port user:pass
ここでは:
server
はリレー・ホストで、port
は25(できれば587)です。user
は作成したSMTPユーザー名、pass
はSMTP資格証明の生成時に受け取ったパスワードです。
-
パスワード・ファイルの権限を付与します。
次のコマンドを実行します。
sudo chown root:root /etc/postfix/sasl_passwd && sudo chmod 600 /etc/postfix/sasl_passwd
-
パスワード・ハッシュを生成します。
次のコマンドを実行します。
sudo postmap hash:/etc/postfix/sasl_passwd
-
Postfixをリロードします。
次のコマンドを実行します。
sudo postfix reload
-
テスト電子メールを送信して、構成をテストします。
次のコマンドを実行します。
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エラーを参照してください。