blastengine(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
現在、Java向けに、blastengine SDKを開発しています。この記事では、その使い方を解説します。0.0.2で対応した添付ファイル付きメールの即時送信について解説します。
blastengineMania/blastengine-java: Java SDK for blastengine
ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
txt @ v=spf1 include:spf.besender.jp ~all
APIキーを取得する
ログイン後、管理画面の右上にある設定メニューに移動します。
そして設定の中で、APIキーを取得します。
必要な情報について
SDKを使う上で必要なのは、先ほどのAPIキーとユーザIDになります。
SDKのインストール
SDKはGitHubのリポジトリにあるblastengine.jarを利用します。これをJavaプロジェクトの中(たとえば app/libs
)に入れます。 app/libs
は最初はないと思うので、フォルダを作成してください。
SDKのインポート
SDKのインポートについて記述します。たとえばGroovyベースのbuild.gradleの場合は次のようになります。
dependencies {
// 略
implementation(fileTree(dir: 'libs', include: ['blastengine.jar']))
}
これでインストール完了です。このjarファイルはGradle Shadow Pluginを使って依存ライブラリも含めて固めています。もし不要な場合には gradle build
でjarファイルを生成してください。利用ライブラリは次の通りです。
- org.apache.commons:commons-math3:3.6.1
- com.fasterxml.jackson.core:jackson-databind:2.13.1
- org.apache.httpcomponents:httpcore:4.4.15
- org.apache.httpcomponents:httpclient:4.5.13
- commons-codec:commons-codec:1.10
- com.sun.mail:javax.mail:1.6.2
- org.wso2.apache.httpcomponents:httpmime:4.3.1.wso2v1
インポート
Java SDKを利用するコードでSDKをインポートします。
import jp.blastengine.BEClient;
import jp.blastengine.BETransaction;
import jp.blastengine.BEMailAddress;
import jp.blastengine.BEError;
初期化
先ほどのAPIキーとユーザIDを使って初期化します。
BEClient.initialize("YOUR_USER_NAME", "YOUR_API_KEY");
トランザクションオブジェクトの作成
メールを即時配信する際にはトランザクションオブジェクトを使います。
BETransaction transaction = new BETransaction();
必要な情報をセットする
続けて、トランザクションオブジェクトに必要なオブジェクトをセットします。
transaction.subject ="Test mail from blastengine";
transaction.text = "Mail body";
transaction.html = "<h1>Hello, from blastengine</h1>";
BEMailAddress fromAddress = new BEMailAddress("info@example.com", "Admin");
transaction.setFrom(fromAddress);
transaction.addTo("user@example.jp");
// オプション(CC、BCCも使えます)
transaction.addCc("cc@example.jp");
transaction.addBcc("bcc@example.jp");
添付ファイルをセットする
添付ファイルはファイルのパスを文字列で指定します。
transaction.attachments.add("../README.md");
transaction.attachments.add("../LICENSE");
後は send
メソッドで送信できます。
try {
Integer deliveryId = transaction.send();
} catch (BEError e) {
System.out.println(e.getMessage());
}
レスポンスはdeliveryId(配信ID)になります。
System.out.println(deliveryId);
// => 18
コードについて
コードはGitHubにアップしてあります。ライセンスはMIT Licenseになります。
blastengineMania/blastengine-java: Java SDK for blastengine
まとめ
blastengineには他にも一括メール配信を行ったり、添付ファイル付きのメール配信機能などもあります。これらの機能も随時実装していきますので、ぜひ皆さんのシステム開発に役立ててください。