blastengineはエンジニアフレンドリーなメール配信サービスです。APIとSMTPリレーの両方をサポートしており、手軽に素早くメール配信ができるようになっています。
今回はRubyでblastengineのAPIを簡単に使えるSDKを開発しましたので、使い方を紹介します。現在はトランザクションメール(即時発信メール)とバルクメール(一括配信)をサポートしています。この記事ではバルクメールの使い方を紹介します。
インストール
インストールはgemコマンドやbundlerで行ってください。
# Gemfile
gem 'blastengine'
または
gem install blastengine
インポート
SDKをインポートします。
require "blastengine"
初期化
Blastengineを初期化します。ユーザ名とAPIキーを使います。
# 初期化
Blastengine.initialize api_key: "API_KEY", user_name: "USER_NAME"
メールオブジェクトの用意
バルクメールは Bulk
を使います。件名やテキスト本文、宛先などを指定します。 __xx__
というのは送信先ごとに置き換わる文字列になります。キーワードの指定方法は後述します。
bulk = Blastengine::Bulk.new
# nameはオプションです
bulk.from email: "info@example.com", name: "Administrator"
bulk.subject = "テストの件名"
bulk.text_part = "__name__ さん\nメール本文です。\n金額は__price__円です"
# オプション
bulk.html_part = "<p>__name__ さん<br />メール本文です。<br />金額は__price__円です</p>"
添付ファイルの追加
添付ファイルは attachments
プロパティに、ファイルのパスを指定してください。
# 添付ファイルがある場合
bulk.attachments << './test.rb'
bulk.attachments << './image.png'
バルクメールの登録
まず宛先を指定しない状態でバルクメールを登録します。登録は register
メソッドになります。
bulk.register
宛先の登録
次に宛先を登録します。この時、置換する文字列も登録します。 name
というキーワードであれば、メール本文に __name__
と書くことで、そこで指定した文字列と置き換わります。
bulk.add "user+1@example.jp", {name: "User 1", price: 1000}
bulk.add "user+2@example.jp", {name: "User 2", price: 1500}
送信先を登録したら、 update
で反映します。
bulk.update
送信
送信は send
メソッドになります。返値はデリバリーIDになります。このデリバリーIDで、メールの送信状況確認や配信停止などを行います。
begin
# 送信
delivery_id = bulk.send
rescue => e
# APIエラー
puts e
end
削除
バルクメールを削除する場合は、 delete
メソッドを実行します。登録したままの状態(送信やキャンセルしていない状態)では10件までしか登録できないので注意してください。
bulk.delete
まとめ
Ruby SDKを使えばRuby on RailsやSinatraなどのWebアプリケーションはもちろん、コマンドラインを使った自動化ツールでもblastengineを活用してもらえます。
ぜひblastengineのRuby SDKを活用ください!