Send an email using SMTP with C# - Amazon Simple Email Service

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

Send an email using SMTP with C#

次の手順では、Microsoft Visual Studio を使用して、Amazon SES から E メールを送信する C# コンソールアプリケーションを作成する方法を示します。このセクションの手順は Visual Studio 2017 に適用されますが、C# コンソールアプリケーションを作成するプロセスはすべての Microsoft Visual Studio エディションで似ています。

以下の手順を実行する前に、「Amazon SES を開始する前に」と「Send an email through Amazon SES using SMTP」に記載されているセットアップ作業を完了します。

重要

この入門用チュートリアルでは、受信されたかどうかを確認できるように自分宛に E メールを送信します。さらに詳しい実験や負荷テストには、Amazon SES メールボックスシミュレーターを使用してください。メールボックスシミュレーターに送信される E メールは、送信クォータに加算されず、バウンス率や苦情率の計算にも含まれません。詳細については、「Testing email sending in Amazon SES」を参照してください。

C# で Amazon SES の SMTP インターフェイスから E メールを送信するには

  1. 次のステップを実行し、Visual Studio でコンソールプロジェクトを作成します。

    1. Microsoft Visual Studio を開きます。

    2. [ファイル] メニューで [New]、[Project] の順に選択します。

    3. [New Project] ウィンドウの左ペインで、[Installed]、[Templates]、[Visual C#] の順に展開します。

    4. [Visual C#] で、[Windows Classic Desktop] を選択します。

    5. 次のイメージに示すように、ウィンドウ上部のメニューで [.NET Framework 4.5] を選択します。

      
                            [New Project] ウィンドウの [.NET Framework] 選択メニュー。
      注記

      必要に応じて、より新しいバージョンの .NET Framework を選択できます。

    6. [Console App (.NET Framework)] を選択します。

    7. [Name (名前)] フィールドに、AmazonSESSample と入力します。

    8. [OK] を選択します。

  2. Visual Studio プロジェクトで、Program.cs のすべてのコンテンツを次のコードに置き換えます。

    using System; using System.Net; using System.Net.Mail; namespace AmazonSESSample { class Program { static void Main(string[] args) { // Replace sender@example.com with your "From" address. // This address must be verified with Amazon SES. String FROM = "sender@example.com"; String FROMNAME = "Sender Name"; // Replace recipient@example.com with a "To" address. If your account // is still in the sandbox, this address must be verified. String TO = "recipient@amazon.com"; // Replace smtp_username with your Amazon SES SMTP user name. String SMTP_USERNAME = "smtp_username"; // Replace smtp_password with your Amazon SES SMTP user name. String SMTP_PASSWORD = "smtp_password"; // (Optional) the name of a configuration set to use for this message. // If you comment out this line, you also need to remove or comment out // the "X-SES-CONFIGURATION-SET" header below. String CONFIGSET = "ConfigSet"; // If you're using Amazon SES in a region other than 米国西部 (オレゴン), // replace email-smtp.us-west-2.amazonaws.com with the Amazon SES SMTP // endpoint in the appropriate AWS Region. String HOST = "email-smtp.us-west-2.amazonaws.com"; // The port you will connect to on the Amazon SES SMTP endpoint. We // are choosing port 587 because we will use STARTTLS to encrypt // the connection. int PORT = 587; // The subject line of the email String SUBJECT = "Amazon SES test (SMTP interface accessed using C#)"; // The body of the email String BODY = "<h1>Amazon SES Test</h1>" + "<p>This email was sent through the " + "<a href='https://aws.amazon.com/ses'>Amazon SES</a> SMTP interface " + "using the .NET System.Net.Mail library.</p>"; // Create and build a new MailMessage object MailMessage message = new MailMessage(); message.IsBodyHtml = true; message.From = new MailAddress(FROM, FROMNAME); message.To.Add(new MailAddress(TO)); message.Subject = SUBJECT; message.Body = BODY; // Comment or delete the next line if you are not using a configuration set message.Headers.Add("X-SES-CONFIGURATION-SET", CONFIGSET); using (var client = new System.Net.Mail.SmtpClient(HOST, PORT)) { // Pass SMTP credentials client.Credentials = new NetworkCredential(SMTP_USERNAME, SMTP_PASSWORD); // Enable SSL encryption client.EnableSsl = true; // Try to send the message. Show status in console. try { Console.WriteLine("Attempting to send email..."); client.Send(message); Console.WriteLine("Email sent!"); } catch (Exception ex) { Console.WriteLine("The email was not sent."); Console.WriteLine("Error message: " + ex.Message); } } } } }
  3. Program.cs で、以下の E メールアドレスを独自の値に置き換えます。

    重要

    E メールアドレスでは、大文字と小文字は区別されます。確認したアドレスと完全に一致することを確認してください。

    • SENDER@EXAMPLE.COM—Replace with your "From" email address. You must verify this address before you run this program. For more information, see Verifying identities in Amazon SES.

    • RECIPIENT@EXAMPLE.COM—Replace with your "To" email address. If your account is still in the sandbox, you must verify this address before you use it. For more information, see Amazon SES サンドボックス外への移動.

  4. Program.cs で、以下の SMTP 認証情報を「Obtaining your Amazon SES SMTP credentials」で取得した値に置き換えます。

    重要

    SMTP 認証情報は、AWS の認証情報とは異なります。認証情報の詳細については、「Types of Amazon SES credentials」を参照してください。

    • YOUR_SMTP_USERNAME—Replace with your SMTP username. Note that your SMTP username credential is a 20-character string of letters and numbers, not an intelligible name.

    • YOUR_SMTP_PASSWORD—Replace with your SMTP password.

  5. (オプション) 米国西部 (オレゴン) 以外のリージョンで Amazon SES SMTP エンドポイントを使用する場合は、変数 HOST の値を実際に使用するエンドポイントに変更します。のSMTPエンドポイントURLのリストについては、 AWS 地域 Amazon SES が利用可能です。を参照してください。 Amazon Simple Email Service (Amazon SES)AWS General Reference.

  6. (オプション) この E メール送信時に設定セットを使用する場合は、変数 CONFIGSET の値を設定セットの名前に変更します。設定セットの詳細については、「Using Amazon SES configuration sets」を参照してください。

  7. 保存 Program.cs.

  8. プロジェクトを構築します。[Build]、[Build Solution] の順に選択します。

  9. プログラムを実行します。[Debug]、[Start Debugging] の順に選択します。

  10. 出力を確認します。E メールが正常に送信されると、コンソールに "Email sent!" が表示されます。送信に失敗すると、エラーメッセージが表示されます。

  11. 受信者のアドレスの E メールクライアントにサインインします。送信した E メールメッセージを確認します。