blastengine(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
現在、C#向けに、blastengine SDKを開発しています。.NET Standard 2.0をターゲットにしているので、macOSを含め幅広い環境で実行できるはずです。
今回は、即時配信メール(トランザクションメール)の送信方法を解説します。
ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
txt @ v=spf1 include:spf.besender.jp ~all
APIキーを取得する
ログイン後、管理画面の右上にある設定メニューに移動します。
そして設定の中で、APIキーを取得します。
必要な情報について
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には他にも一括メール配信を行ったり、添付ファイル付きのメール配信機能などもあります。これらの機能も随時実装していきますので、ぜひ皆さんのシステム開発に役立ててください。