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

MailKitを使用して、電子メール配信サービスを介して電子メールを送信します。

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

MailKitは、.NETアプリケーション用のオープン・ソースのクロス・プラットフォーム電子メール・フレームワークです。SmtpClientは、.NETアプリケーションでメールを送信するための推奨アプローチではなくなったため、かわりにMailKitを使用してEmail Deliveryを介して電子メールを送受信できます。MailKitを使用する前に、サンプルのMailKitコードを設定し、Email Delivery構成でテストします。

重要

次の手順には、便宜上サンプル・コードが含まれており、参照として使用する必要があります。

MailKitサンプル・コードを設定し、Email Delivery構成をテストするには:

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

    ノート

    MailKitが電子メール配信を使用するように構成するには、SMTP資格証明が必要です。SMTP資格証明の生成時には、ユーザー名とパスワードを書き留めてください。

  2. Visual Studio Codeでプロジェクトを作成するには:

    1. OCIEmailという名前のフォルダを作成して、プロジェクト・スペースを作成します。
    2. 「VSコード・ファイル」「フォルダを開く」で、OCIEmailフォルダを開きます。
    3. ターミナル・ウィンドウを開きます(ctrl + ~)。
    4. プロジェクト・テンプレートを作成し、MailKitの依存性を追加するには、ターミナルで次のコマンドを実行します。
      dotnet new console --framework net6.0
      dotnet add package MailKit --version 2.15.0 

      「VS Code Explorer」ウィンドウでプロジェクトを展開します。

  3. Program.csファイルの内容を次のコード・ブロックに置き換えます。
    using System;
    
    using MailKit.Net.Smtp;
    using MailKit;
    using MimeKit;
    
    namespace Program {
        class TestOCIEmail
        {
            public static void Main (string[] args)
            {
                var message = new MimeMessage ();
                message.From.Add (new MailboxAddress ("<FROM NAME>", "<FROM>"));
                message.To.Add (new MailboxAddress ("<TO NAME>", "<TO>"));
                message.Subject = "Mail from OCI ED service";
    
                message.Body = new TextPart ("Html") {
                    Text = @"
                    <h1>OCI Email Delivery test</h1>
                    <p>This email was sent with OCI Email Delivery using the 
                    <a href='https://github.com/jstedfast/MailKit'>MailKit Package</a>
                    for .Net .</p>"
                };
    
                using (var client = new SmtpClient ()) {
    
                    var host = "<HOST>";
                    var port = 587;
                    var username = "<smtp username>";
                    var password = "<smtp password>";
                    
                    client.Connect (host, port, false);
    
                    client.Authenticate (username, password);
    
                    client.Send (message);
                    client.Disconnect (true);
                }
               Console.WriteLine("Email send successfully !!");
            }
        }
    }
    
  4. 次のパラメータをProgram.csファイル内の独自の値に置き換えます。
    1. FROM - 送信者の電子メール・アドレスに置き換えます。この電子メール・アドレスがEmail Deliveryの「承認済送信者」リストに追加されていることを確認します。
    2. TO - 受信者の電子メール・アドレスに置き換えます。
    3. SMTP資格証明 - smtp_usernameおよびsmtp_passwordを、コンソールで生成されるOracle Cloud Infrastructure SMTPのユーザー名およびパスワードに置き換えます。
    4. HOST - 電子メール配信のSMTPエンドポイントに置き換えます。たとえば、smtp.us-ashburn-1.oraclecloud.comです。
  5. 変更を保存し、次のコマンドを実行してメールを送信します。
    dotnet run
  6. 出力を確認します。電子メールが正常に送信された場合、コンソールに電子メールが正常に送信されましたが表示されますそれ以外の場合は、エラー・メッセージが表示されます。
  7. 受信者の受信ボックスにログインし、電子メールの受信を確認します。