C# の System.Net.Mail クラスにある SmtpClient で Gmail を送信する方法。.NET Framework 4.5 の文字化け対策も実装。
エンコード用のメソッドは以下のとおり。
.NET Framework 4.5 の System.Net.Mail で日本語の件名を ISO-2022-JP の Base64 でエンコードして送信する方法
http://blogs.technet.com/b/exchangeteamjp/archive/2012/10/05/3524293.aspx
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
