C# の SmtpClient クラスから Gmail を送信する

C# からメールを送信する
C# の System.Net.Mail クラスにある SmtpClient で Gmail を送信する方法。.NET Framework 4.5 の文字化け対策も実装。

SmtpClient クラスからメール送信

using System;
using System.Net;
using System.Net.Mail;
using System.Text;

var fromAddress = new MailAddress("hoge@gmail.com");
var toAddress = new MailAddress("hoge@exsample.com");
string pwd = "abcd1234";
var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, pwd)
};

using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = EncodeMailHeader(EncodeMailHeader("メール送信テスト")),
    Body = "テストメールです。",
    BodyEncoding = Encoding.GetEncoding("iso-2022-jp"),
})
{
    smtp.Send(message);
}

エンコード用のメソッドは以下のとおり。
static string EncodeMailHeader(string subject)
{
    Encoding enc = Encoding.GetEncoding("iso-2022-jp");
    string strBase64 = Convert.ToBase64String(enc.GetBytes(subject));
    return string.Format("=?{0}?B?{1}?=", "iso-2022-jp", strBase64);
}
こちらを参考にしました。
.NET Framework 4.5 の System.Net.Mail で日本語の件名を ISO-2022-JP の Base64 でエンコードして送信する方法
http://blogs.technet.com/b/exchangeteamjp/archive/2012/10/05/3524293.aspx

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する