blastengine(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先へメールを届けられます。
現在、C#向けに、blastengine SDKを開発しています。.NET6以上を対象としているので、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パッケージの管理よりインストールしてください。
初期化
先ほどのAPIキーとユーザIDを使って初期化します。
new Blastengine.Client("YOUR_USER_ID", "YOUR_API_KEY");
メールオブジェクトの作成
トランザクション(即時配信)メール、バルク(一括配信)メールオブジェクトを作成します。
var transaction = new Blastengine.Transaction();
var bulk = new Blastengine.Bulk();
必要な情報をセットする
続けて、必要な情報をセットします(トランザクションメールも同様に)。
bulk.Subject = "テストメール from C#";
bulk.TextPart = "これはテストメールです to __name__";
bulk.HtmlPart = "<h1>これはテストメールです to __name__</h1>";
bulk.From = new Blastengine.From("info@example.com", "Admin");
添付ファイルを追加する
添付ファイルは Attachments
プロパティにファイルのパスをセットします。
bulk.Attachments.Add("path/to/file1.txt");
bulk.Attachments.Add("path/to/file2.txt");
保存する
バルクメールの場合は、 Begin
メソッドの時に添付ファイルの情報が保存されます。
var bol1 = await bulk.Begin();
トランザクションメールは、 Send
で送信した際にそのまま使われます。
var bol2 = await transaction.Send();
宛先データをセットして更新する
バルクメールの場合は、宛先の情報をセットして、更新します。
// 置き換えコードあり
bulk.To.Add(new Blastengine.BulkTo("user1@example.jp", new List<Blastengine.InsertCode>() {
new Blastengine.InsertCode("name", "User1")
}));
// 置き換えコードなし
bulk.To.Add(new Blastengine.BulkTo("user2@example.jp"));
// 宛先を登録
await bulk.Update();
送信する
バルクメールの場合、送信は Send
メソッドを使います。引数として、配信予定日時を指定できます。
// 即時配信
var res = await bulk.Send();
// 予約配信(10分後)
var res = await bulk.Send(DateTime.Now.AddMinutes(10));
コードについて
コードはGitHubにアップしてあります。ライセンスはMIT Licenseになります。
blastengineMania/blastengine-csharp: blastengineのC# SDKです
まとめ
blastengineには、他にも1クリックでの購読停止機能や、Webhookなどの仕組みがあります。他の機能も随時実装していきますので、ぜひ皆さんのシステム開発に役立ててください。