ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
Oracle Cloud Infrastructure Email Deliveryサービスを使用するためのC-Sharpコードの設定
イントロダクション
Oracle Cloud Infrastructure Email Deliveryサービスは、セキュアな大量のマーケティングおよびトランザクション電子メールを送信するための高速で信頼性の高い管理ソリューションを提供します。
Email Deliveryサービスは、ミッションクリティカルな通信用のアプリケーション生成電子メールを送信するために必要なツールを備えています(受信、不正検出アラート、マルチファクタ・アイデンティティ検証、パスワードのリセットなど)。
ノート: プラットフォームは、一括/マーケティングおよびトランザクションEメール用に最適化されており、個人連絡Eメール用に最適化されていません。
最新のプロトコルを使用してメールを送信するOracle Cloud Infrastructure (OCI) Email Deliveryサービスを使用してC#で電子メールを送信する場合、.NET SmtpClient
クラスは使用されなくなります。ただし、幅広い最新のプロトコルをサポートする電子メールクライアントを持つMailkitという名前のオープンソースパッケージを使用できます。
Oracle Cloud InfrastructureのEmail Deliverabilityチームは、主要な配信到達性メトリックを使用してプラットフォームを管理し、電子メールに対して可能なかぎり最高の送信評価を確保します。Email Deliveryサービスを使用して電子メールを送信すると、次のアイテムが提供されます。
- メール転送エージェント(MTA)でのメールボックス・プロバイダの一意のSMTP構成
- バンス・コレクション
- ユーザー・クレームの収集
- 電子メール認証標準
- 配信到達性パフォーマンス
Email Deliveryを使用すると、アウトバウンド電子メール・サーバーになります。既存の電子メール・サーバーがある場合は、そのサーバーを保持して、Email Deliveryを介して送信するように構成できます。Email Deliveryサービスは、フィードバック・ループとプラットフォームの評判を自動的に処理します。
目標
Oracle Cloud Infrastructure Email Deliveryサービスを使用するようにC#コードを設定します。
前提条件
-
GitHubメールキットアドレスを書き留めます: https://github.com/jstedfast/mailkit.
-
最新のプロトコルを使用し、オプションとしてMailKitを推奨する場合の新しい開発に
SMTPClient
クラスを使用しないことについては、Microsoftの推奨事項を参照してください。 -
MailKitは、.NETで環境がすでに設定されており、Eメールを送信するコードでプロジェクトが作成されていると仮定し、インストールは非常に簡単です。次のコマンドを実行して、MailKitをインストールします。
\>\> dotnet add package MailKit \--version 3.5.0
タスク1: OCI電子メール配信の構成
ノート: 次の構成は、たとえば目的で、サービスの構成のベスト・プラクティスを考慮しません。
詳細は、配信到達性のベスト・プラクティスを参照してください。
-
Oracle Cloudポータルで、OCI Email Deliveryサービスにアクセスします。
-
メッセージを送信するためのドメインを作成します。
-
メッセージを送信するための承認済送信者を構成します。
タスク2: C#コードの設定
-
ニーズに応じて変更できるコードの例を次に示します。承認済送信者は、OCI Email Deliveryコンソールですでに作成されている必要があります(タスク1を参照)。
using System; using MailKit.Net.Smtp; using MailKit; using MimeKit; namespace MyApp // Note: actual namespace depends on the project name. { internal class Program { static void Main(string\[\] args) { try { // Replace these values with the actual values for your email account and OCI Email Delivery service var fromAddress = \"[[user@testdomain.com]{.underline}](mailto:userfrom@testdomain.com)\"; var toAddress = \"[[user@example.com]{.underline}](mailto:userto@example.com)\"; var smtpUsername = \"ocid1.user.oc1..aaaaaaaa4xxxxxxxxxg6vwabewu6f4xxxxxxxxxxhpbe3d56gc7ljwt2a@ocid1.tenancy.oc1..[aaaaaaaah2c25pobzyzvkcznnozputxfxtz3qvewrqaga7z66tdjrgvigbiq.ck.com]{.underline}\"; var smtpPassword = \"XXXXXXXXXXX\"; var smtpHost = \"[[smtp.]{.underline}email[.us-ashburn-1.oci.oraclecloud.com]{.underline}](http://smtp.email.us-ashburn-1.oci.oraclecloud.com)\"; var smtpPort = 587; var message = new MimeMessage (); message.From.Add (new MailboxAddress (\"Ivan Vasquez\", fromAddress)); message.To.Add (new MailboxAddress (\"Ivan Vasquez\", toAddress)); message.Subject = \"Test Email from OCI\"; message.Body = new TextPart (\"Html\") { Text = @\" \<h1\>OCI Email Delivery test\</h1\> \<p\>This email was sent from Email Delivery Service\</p\>\" }; using (var client = new SmtpClient ()) { client.Connect (smtpHost, smtpPort, false); client.Authenticate (smtpUsername, smtpPassword); client.Send (message); client.Disconnect (true); } Console.WriteLine(\"Email send successfully !!\"); } catch (Exception ex) { Console.WriteLine(\"Error sending email: \" + ex.Message); } } } }
-
次のコマンドを使用してコードを作成します:
\>\>dotnet build
。エラーは表示されません。 -
次のコマンドを実行します:
\>\>dotnet run
。電子メールは正常に送信されました。
関連リンク
承認
著者 - Leandro Camargo (クラウド・スペシャリストAチーム)、Ivan Vasquez (クラウド・スペシャリストAチーム)
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Set up C-Sharp code to use Oracle Cloud Infrastructure Email Delivery service
F81094-01
May 2023
Copyright © 2023, Oracle and/or its affiliates.