C#

【C#】MailKit でメールを送信する方法

「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 = "info@pg-life.net",
        NameTo = "宛先名",

        AddressTo = "test@pg-life.net",
        Subject = "件名",
        BodyText = "本文",
        // ※下記は個人情報のため、適当な文字列にしています
        SmtpServer = "smtp.xxxxxxxxxx.jp",
        Port = 465,
        AuthUserName = "info@pg-life.net",
        AuthPassWord = "xxxxxxxxxxxxxxxx",
    };
    mail.SendMail();
    Console.WriteLine("送信完了");
    Console.ReadLine();
}
エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい