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(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。

現在、C#向けに、blastengine SDKを開発しています。.NET Standard 2.0をターゲットにしているので、macOSを含め幅広い環境で実行できるはずです。

今回は、即時配信メール(トランザクションメール)の送信方法を解説します。

ユーザ登録する

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

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

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

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

APIキーを取得する

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

getting-started-6.jpg

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

getting-started-5.png

必要な情報について

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

SDKのインストール

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

NuGet Gallery | Blastengine 0.1.0

依存ライブラリは以下の通りです。

  • Newtonsoft.Json

初期化

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

new Blastengine.Client(DotNetEnv.Env.GetString("API_USER"), DotNetEnv.Env.GetString("API_KEY"));

トランザクションオブジェクトの作成

メールを即時配信する際にはトランザクションオブジェクトを使います。

var transaction = new Transaction();

必要な情報をセットする

続けて、トランザクションオブジェクトに必要なオブジェクトをセットします。

transaction.To = "user@example.jp";
transaction.Subject = "テストメール";
transaction.TextPart = "本文";
transaction.From = new Blastengine.From("admin@example.com", "Admin"); // 2つ目の引数はオプション

// 以下は任意
transaction.HtmlPart = "<h1>これはテストメールです to __name__</h1>";
transaction.Cc.Add("cc@example.jp");
transaction.Bcc.Add("bcc@example.jp");
// 置き換え文字列の設定方法
transaction.InsertCode("name", "Test");
transaction.InsertCode("code", "001");
// List-Unsubscribeの設定
transaction.ListUnsubscribe = new Blastengine.ListUnsubscribe(Url: "https://example.com", Email: "unsub__code__@example.com");

後は Send メソッドで送信できます。

try {
	if (await transaction.Send())
	{
		// 送信成功
	}
} catch (error) {
	// 送信失敗
}

送信成功した場合は transaction.DeliveryId に送信IDが入ります。失敗した場合には、例外処理になります。

Console.WriteLine(error.message); // エラーメッセージ

コードについて

コードはGitHubにアップしてあります。ライセンスはMIT Licenseになります。

blastengineMania/blastengine-csharp: blastengineのC# 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?