備忘録

備忘録

C#でSMTP, Mailgun, SendGridなどを利用してメールを送信する方法

Ⅰ. はじめに

メール配信サービスのAPIをラップした FluentEmail というライブラリの紹介です。
.NET Standard で作られているためクロスプラットフォームで動作します。

各サービスの API ドキュメントには HttpClient や RestClient 等を使って Web API を直接呼び出すサンプルがあります。
しかし、メールを送信する為に各サービスごとに Web API ドキュメントを読み、理解し、実装する手間がかかります。

FluentEmail はこれらの問題を解決してくれます。

2017/04/23 時点でSMTP, Mailgun, SendGrid に対応しています。

Ⅱ. FluentEmail のサンプル(SMTPの例)

1. NuGet から FluentEmail.Smtp をインストールする

f:id:kagasu:20210718020714p:plain

2. サンプルプログラム
var smtp = new SmtpSender(new SmtpClient("smtp.example.com", 465));
var email = Email.From("from@example.com", "MyName")
    .To("to@gmail.com")
    .Subject("Test subject")
    .Body("Test body");

smtp.Send(email);

Ⅲ. FluentEmail のサンプル(Mailgunの例)

1. NuGet から FluentEmail.Mailgun をインストールする

f:id:kagasu:20170423123802p:plain

2. サンプルプログラム
public async Task<bool> SendEmail()
{
  Email.DefaultSender = new MailgunSender(
      "mydomain.tld",
      "key-********************************");

  var email = Email
    .From("from@mydomain.tld")
    .To("to@gmail.com")
    .Subject("件名")
    .Body("本文");

  var response = await email.SendAsync();
  return response.Successful;
}