Web検索はbingがおすすめ!

SendGridを利用してメールを送信する - C#

SendGridを利用してメールを送信するコードを紹介します。
この記事では、System.Net.Mail名前空間の SmtpClient を利用したメール送信コードを紹介します。

SendGridのID,パスワード

SendGridのID,ホストの確認手順です。
Azure PortalでSendGridのアカウント項目を選択します。下図の画面が表示されます。右側のエリアの[Configurations]の項目をクリックします。


[Configurations]の画面が表示されます。画面上部の[USERNAME]のテキストボックスに表示されている値がSendGridのSMTP認証のユーザーIDになります。[SMTP SERVER]の項目には接続先のSMTPサーバーのホスト名が表示されます。


SendGridのパスワードはSendGridへのサインアップ時に設定したパスワードを利用します。SendGridへのサインアップについてはこちらの記事を参照してください。
パスワードを忘れた場合は、Azure PortalでSendGridのアカウント項目を表示した画面の上部のメニューの[Reset password]を選択するとパスワードのリセットができます。

プログラム

UI

下図のUIを作成します。Buttonと複数行のTextBoxを配置します。

コード

下記のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net.Mail;

namespace SimpleSendMail
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      string SMTPHost = "smtp.sendgrid.net";
      int SMTPPort = 587;
      string SMTPAuthUser = "(SendGridのユーザーID)";
      string SMTPAuthPass = "(SendGridのパスワード)";

      string sTo = "abcdefg@ipentec.com";
      string sName = "テストプログラム";
      string sSubject = "サブジェクトです";
      string sFrom = "hijklmn@ipentec.com";
      string sDocument = "メール本文です。あいうえお、ABCDE";

      SmtpClient sc = new SmtpClient();
      sc.UseDefaultCredentials = false;
      sc.Credentials = new System.Net.NetworkCredential(SMTPAuthUser, SMTPAuthPass);

      sc.Port = SMTPPort;
      sc.Host = SMTPHost;
      sc.DeliveryMethod = SmtpDeliveryMethod.Network;
      sc.EnableSsl = false;

      MailMessage msg = new MailMessage();
      msg.To.Add(new MailAddress(sTo, "Test Program"));
      msg.From = new MailAddress(sFrom, sName);
      msg.Subject = sSubject;
      msg.Body = sDocument;
      msg.IsBodyHtml = false;

      sc.Send(msg);

      textBox1.Text += "メールを送信しました。";
    }
  }
}

解説

System.Net.Mail 名前空間の MailClient クラスを利用してメールを送信します。基本処理はこちらの記事と同様です。SendGridのSMTPサーバーのホストは"smtp.sendgrid.net"を、ポートは587を利用します。SendGridでメール送信の際にはSMTP認証が必要です。SMTP認証の詳細についてはこちらの記事を参照してください。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


[button1]をクリックします。メールが送信され、テキストボックスに"メールを送信しました。"のメッセージが表示されます。


SnedGridを経由するため、アプリケーションからメール送信後、3分~5分ほどで送信先メールアドレスにメールが届きます。


プログラムで指定した内容のメールが届きました。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2019-12-21
作成日: 2017-02-21
iPentec all rights reserverd.