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