ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を終える際は、これらの値をクラウド環境に固有の値に置き換えてください。
Oracle Cloud Infrastructure Email Delivery Service HTTPインタフェースを使用した電子メールの送信
イントロダクション
Oracle Cloud Infrastructure (OCI) Email Deliveryは、大量の一括電子メールとトランザクション電子メールの両方を送信するための迅速で信頼性の高い管理ソリューションを提供する電子メール送信サービスです。以前は、OCI Email Deliveryには、Simple Mail Transfer Protocol (SMTP)インタフェースのみが含まれていました。しかし、最近では、電子メール送信用の新しいHTTPS REST APIを発表し、パフォーマンスを向上させ、構成の複雑さを排除し、受信ボックス到達の成功率を高めました。
目標
- OCI Email Delivery Service HTTPインタフェースを使用して電子メールを送信します。
前提条件
-
OCI Email Deliveryを使用して電子メールを送信するための十分な権限を持つユーザー。詳細は、ここのポリシーを参照してください。
-
OCI Email Deliveryドメイン。OCI Email Deliveryドメインの設定の詳細は、OCI Email Deliveryで電子メールを送信するステップバイステップの手順を参照してください。
タスク1: 認証方法の理解
HTTPS電子メール送信では、標準のOCI SDK認証方法がサポートされています。このチュートリアルでは、APIキーベースの認証とインスタンス・プリンシパル認証をデモンストレーションします。詳細は、OCI SDKの認証方法を参照してください。
-
APIキーベース認証
この認証では、構成ファイルを作成してローカル・マシンに格納します。そのため、これはセキュアなネットワークからのみ使用し、秘密キーをローカルに保存することに問題がない場合に使用します。ファイルには次の詳細が含まれます。
- ユーザーOracle Cloud Identifier (OCID)
- テナンシOCID
- 領域
- 秘密キー・パス
- 指紋
前述のパラメータの作成および収集方法の詳細は、必須キーおよびOCIDsを参照してください。
-
Instance Principal認証
インスタンス・プリンシパル認証では、動的グループを介してOCIサービスでAPIコールを実行するインスタンスを認可します。動的グループ、一致ルールおよび適切なポリシーを作成します。詳細は、動的グループの管理を参照してください。
インスタンスが電子メールを送信できるようにするには、次のポリシーを使用します。
Allow dynamic-group <dynamic-group-name> to use email-family in compartment <compartment-name>
これらの権限をさらにカスタマイズする方法の詳細は、電子メール配信サービスの詳細を参照してください。
タスク2: Eメールの送信
Pythonソフトウェア開発キット(SDK)を使用しますが、任意のSDKまたはOracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)を代替できます。インストール方法の詳細は、ソフトウェア開発キットとコマンドライン・インタフェースを参照してください。
ノート:使用可能なパラメータの完全なリストは、電子メール配信APIを参照してください。
-
APIキーベース認証
import oci #Create a default config config = oci.config.from_file() #Initialize service client with config file email_client = oci.email_data_plane.EmailDPClient(config) #Create the email details email_details = oci.email_data_plane.models.SubmitEmailDetails( sender = oci.email_data_plane.models.Sender( sender_address = oci.email_data_plane.models.EmailAddress( email = '<approved sender email>', name = '<sender name>'), compartment_id = '<compartment ocid>'), recipients = oci.email_data_plane.models.Recipients( to = [ oci.email_data_plane.models.EmailAddress( email = '<to email address>', name = '<to name>' )], cc = [ oci.email_data_plane.models.EmailAddress( email = '<cc email address>', name '<cc name>' )], bcc = [ oci.email_data_plane.models.EmailAddress( email = '<bcc email address>', name '<bcc name>' )]), subject = '<email subject>', body_text = '<email body>', ) #Submit the email email_client.submit_email(email_details)
Python SDKクライアント構成の例は、configuration_example.pyからダウンロードします。
-
Instance Principal認証
import oci compartment_id = '<compartment ocid>' # By default this will hit the auth service in the region returned by http://169.254.169.254/opc/v2/instance/region on the instance. signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner() # In the base case, configuration does not need to be provided as the region and tenancy are obtained from the InstancePrincipalsSecurityTokenSigner identity_client = oci.identity.IdentityClient(config={}, signer=signer) #Create the email details email_details = oci.email_data_plane.models.SubmitEmailDetails( sender = oci.email_data_plane.models.Sender( sender_address = oci.email_data_plane.models.EmailAddress( email = '<approved sender email>', name = '<sender name>'), compartment_id = '<compartment ocid>'), recipients = oci.email_data_plane.models.Recipients( to = [ oci.email_data_plane.models.EmailAddress( email = '<to email address>', name = '<to name>' )], cc = [ oci.email_data_plane.models.EmailAddress( email = '<cc email address>', name '<cc name>' )], bcc = [ oci.email_data_plane.models.EmailAddress( email = '<bcc email address>', name '<bcc name>' )]), subject = '<email subject>', body_text = '<email body>', ) #Submit the email email_client.submit_email(email_details)
Python SDKインスタンス・プリンシパルの例をinstance_principals_examples.pyからダウンロードします。
タスク3: ボリュームでのテスト
送信者の評判と送信者の評判の両方を維持するには、ボリュームでのテストで次のベスト・プラクティスを使用します。
-
example@discard.oracle.com
など、discard.oracle.com
ドメインで受信アドレスを使用します。OCI Email Deliveryは、メールを受け入れますが、受信ボックスに配信しません。 -
大量の電子メールが有効な電子メール・アドレスに送信された場合、受信者はその電子メールを拒否するため、多数のハード・バウンスが発生します。この結果は、IPの評価に悪影響を及ぼします。バウンス処理をテストする場合、存在しないドメインに少数の電子メールを送信します。
関連リンク
承認
- 著者 - Cody Brinkman (クラウド・アーキテクト)
その他の学習リソース
docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Send Emails using the Oracle Cloud Infrastructure Email Delivery Service HTTP Interface
F96703-02
May 2024