0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

blastengine C# SDKでメール種別を気にせず送信できるようになりました

Posted at

blastengineはエンジニアフレンドリーなメール配信サービスです。APIとSMTPリレーの両方をサポートしており、手軽に素早くメール配信ができるようになっています。

今回はC# SDKでメールの種類(即時配信、一括配信など)を気にせず利用できるMailクラスを作成しましたので、その使い方を解説します。

コードについて

C# SDKはMIT Licenseのオープンソース・ソフトウェアです。リポジトリは以下にあります。

blastengineMania/blastengine-csharp: blastengineのC# SDKです

ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34-46d181ee2924.jpeg

送信元ドメインのSPFを設定する

送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。

txt @ v=spf1 include:spf.besender.jp ~all

APIキーを取得する

ログイン後、管理画面の右上にある設定メニューに移動します。

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/47b2b2ac-2e41-77fe-d84f-0ae0b7541f36.jpeg

そして設定の中で、APIキーを取得します。

https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/2b5ca124-3020-1d39-84e4-911cd4db27e2.png

必要な情報について

SDKを使う上で必要なのは、先ほどのAPIキーとユーザIDになります。

SDKのインストール

SDKはNuGetでリリースしています。Visual StudioのNuGetパッケージの管理よりインストールしてください。

NuGet Gallery | Blastengine

初期化

先ほどのAPIキーとユーザIDを使って初期化します。

new Blastengine.Client("YOUR_USER_ID", "YOUR_API_KEY");

メールの種類

blastengineで利用する主なメールの種類は以下の2つになります。

メール種別 添付ファイル 即時配信 宛先 CC・BCC 配信日時指定
トランザクションメール 1つ ×
バルクメール 複数 ×

MailクラスではCCとBCCを指定しながら、配信日時を指定しようとするとエラーになるので注意してください。

Mailクラスの使い方

まずメールに関係する情報を設定します。

var mail = new Blastengine.Mail();

mail.Subject = "テストメール from C# __code__";
mail.TextPart = "これはテストメールです to __name__";
mail.HtmlPart = "<h1>これはテストメールです to __name__</h1>";
mail.From = new Blastengine.From("info@example.com", "Admin");
mail.ListUnsubscribe = new Blastengine.ListUnsubscribe(Url: "https://example.com", Email: "unsub__code__@example.com");

添付ファイルも利用できます。

mail.Attachments.Add("README.md");
mail.Attachments.Add("image.png");

宛先を指定します。バルクメールの場合、大量の宛先を指定した場合には、自動的にCSVアップロードが適用されます。

for (var i = 1; i <= 60; i++)
{
	mail.To.Add(new Blastengine.BulkTo($"user{i}@example.jp", new List<Blastengine.InsertCode>() {
		new Blastengine.InsertCode("name", $"User{i}"),
		new Blastengine.InsertCode("code", $"00{i}"),
	}));
}

メールの内容ができあがったら、 Send メソッドで送信を行います。

// 即時配信する場合
mail.Send()
// 時間指定を行う場合
mail.Send(DateTime.Now.AddMinutes(5));

利点

これまでは即時配信用にはTransaction、一括配信ではBulkなど使い分ける必要がありました。そういった使い分けが不要になります。

また、一括メールの配送先が50件を超える場合にはCSVアップロードなどを使う必要がありましたが、それもSDK内で吸収していますので、配送先の数を気にせず利用できます。

まとめ

blastengineではAPIベースの他、SMTPリレーによるメール配信も利用できます。APIの場合、大量の宛先に対する一括配信も利用できますので、ぜひSDKとともに利用してください。

エンジニア向けメール配信システム「ブラストエンジン(blastengine)」

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?