「MailKit」ライブラリを使ってメールを送信する方法をまとめます。
【検証環境】.NET Framework 4.7.2
利用準備
パッケージのインストール
Install-Package MailKit -Version 2.11.1
クラスの定義
public class Mail
{
//送信者名
public string NameFrom { get; set; }
//宛先名
public string NameTo { get; set; }
//送信者アドレス
public string AddressFrom { get; set; }
//宛先アドレス
public string AddressTo { get; set; }
//件名
public string Subject { get; set; }
//本文
public string BodyText { get; set; }
//SMTPサーバ
public string SmtpServer { get; set; }
//ポート番号
public int Port { get; set; }
//サーバ認証ユーザ名
public string AuthUserName { get; set; }
//サーバ認証パスワード
public string AuthPassWord { get; set; }
public async void SendMail()
{
var message = new MimeKit.MimeMessage();
// 送信者
message.From.Add(new MimeKit.MailboxAddress(NameFrom, AddressFrom));
// 宛先
message.To.Add(new MimeKit.MailboxAddress(NameTo, AddressTo));
//CC
//message.Cc.Add(new MimeKit.MailboxAddress(NameCC, AdressCC));
// タイトル
message.Subject = Subject;
// 本文
var textPart = new MimeKit.TextPart(MimeKit.Text.TextFormat.Text);
textPart.Text = BodyText;
message.Body = textPart;
using (var smtpClient = new MailKit.Net.Smtp.SmtpClient())
{
try
{
await smtpClient.ConnectAsync(SmtpServer, Port); // 接続
await smtpClient.AuthenticateAsync(AuthUserName, AuthPassWord); // 認証
await smtpClient.SendAsync(message); // 送信
await smtpClient.DisconnectAsync(true); // 切断
}
catch (Exception ex)
{
throw new Exception(ex.Message + "メールの送信が失敗しました。");
}
}
}
}
サンプルコード
static void Main(string[] args)
{
var mail = new Mail()
{
NameFrom = "送信者名",
AddressFrom = "[email protected]",
NameTo = "宛先名",
AddressTo = "[email protected]",
Subject = "件名",
BodyText = "本文",
// ※下記は個人情報のため、適当な文字列にしています
SmtpServer = "smtp.xxxxxxxxxx.jp",
Port = 465,
AuthUserName = "[email protected]",
AuthPassWord = "xxxxxxxxxxxxxxxx",
};
mail.SendMail();
Console.WriteLine("送信完了");
Console.ReadLine();
}