C# の SmtpClient クラスから Gmail を送信する
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