LoginSignup
1
0

More than 1 year has passed since last update.

blastengineのRuby SDKを使ってテキストメールを一括配信する

Last updated at Posted at 2022-09-24

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を活用ください!

blastengine | RubyGems.org | コミュニティのGemホスティングサービス

1
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
1
0