しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

SendGrid C# クライアント 3.0.0 がリリースされたみたいです

今朝、起きるとゲス井さんのツイートが目に入りました。

ほうほう、SendGrid の C# クライアントがメジャーアップデートですか。

NuGet のページで依存関係をみると HttpClient 周りが入っていたので、これは期待できそうです。

f:id:shiba-yan:20140522232010p:plain

巨大な破壊的変更として SendGrid クラスが無くなったことが挙げられるみたいです。

BREAKING CHANGE: SendGrid.GetInstance() has been replaced with new SendGridMessage()

NuGet Gallery | SendGrid 3.0.0

後は送信周りが Web API に一本化されたところっぽいですね。

とりあえずソースコードと簡単な使い方は GitHub で公開されています。

https://github.com/sendgrid/sendgrid-csharp

メールを送信するための最少コードは、以下のような感じでしょうか。

var message = new SendGridMessage();

message.AddTo("foo@example.com);
message.From = new MailAddress("bar@example.com");
message.Subject = "test mail";
message.Text = "sendgrid c# client";

var credentials = new NetworkCredential("USERNAME", "PASSWORD");

var transport = new Web(credentials);

transport.Deliver(message);

// Task 返すメソッドもある
//await transport.DeliverAsync(message);

前のクライアントと比較するとかなり改善はされていますが、クラスの設計周りにまだ微妙さが残っている感じがします。*1

Web API を使うと SMTP と日本語を組み合わせた時のめんどくさい文字化けとかから解放されるので、個人的には割とお勧めしたいです。*2

*1:Web クラスとか何を指しているのかわからん(

*2:.NET 4.5 で SmtpClient の挙動が変わっていたらしい - しばやん雑記 のこと