2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

blastengineを使ってターミナルから添付ファイル付きメールを送信する

Last updated at Posted at 2021-12-27

blastengineはシンプルな開発者向けのメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。

今回はblastengineでAPIを使って、添付ファイル付きメールを送信するまでの流れを順番に解説します。

ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

getting-started-4.jpg

APIキーをゲットする

ログイン後、管理画面の右上にある設定メニューに移動します。

getting-started-6.jpg

そして設定の中で、APIキーを取得します。

getting-started-5.png

送信元ドメインのSPFを設定する

送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定しますが、TXTレコードに以下のSPFを追加します。

txt @ v=spf1 include:spf.besender.jp ~all

トークンを生成する

APIリクエストするためのトークンを生成します。手順としては次のとおりです。

  1. ユーザIDとAPIキーを連結する
  2. SHA256のハッシュを生成する
  3. ハッシュを全て小文字にする
  4. 3の文字列をBASE64エンコードする

例えばユーザIDとAPIキーが以下だったとします。

項目
ユーザID blastengine
APIキー ABCDEFG

まずユーザIDとAPIキーを連結します。

blastengineABCDEFG

この文字列のハッシュ値を取ります。

$ echo -n "blastengineABCDEFG" | shasum -a 256
1f0eee8fc120676fc589492f15228efb3d021f0aee4b006efb27c7ee33f5d6c9  -

この値をすべて小文字にし、BASE64エンコードします。

$ echo -n "1f0eee8fc120676fc589492f15228efb3d021f0aee4b006efb27c7ee33f5d6c9" | base64 
MWYwZWVlOGZjMTIwNjc2ZmM1ODk0OTJmMTUyMjhlZmIzZDAyMWYwYWVlNGIwMDZlZmIyN2M3ZWUzM2Y1ZDZjOQ==

この生成された MWYwZWVlOGZjMTIwNjc2ZmM1ODk0OTJmMTUyMjhlZmIzZDAyMWYwYWVlNGIwMDZlZmIyN2M3ZWUzM2Y1ZDZjOQ== がトークンになります。

JSONファイルを用意する

APIにリクエストするためのパラメータを記述したJSONファイルを用意します(今回はファイル名をbase.jsonとしています)。今回は簡単な例として、次の内容になります。JSONキーについては別な記事で解説する予定ですが、おそらく見ればどこに用いられるものなのかはすぐ分かるかと思います。fromのemail、toのメールアドレスは必要なものに書き換えてください。

base.json
{
  "from": {
    "email": "no-reply@example.jp",
    "name": "送信者サンプル"
  },
  "to": "test@example.com",
  "subject": "テスト件名",
  "encode": "ISO-2022-JP",
  "text_part": "テスト配信",
  "html_part": "<!DOCTYPE html><html><header></header><body>sample html</body></html>"
}

リクエストを組み立てる

blastengineの即時配信(トランザクション)用のエンドポイントは以下になります。

POST https://app.engn.jp/api/v1/deliveries/transaction

トークンとJSONファイルの準備ができたらcurlリクエストを組み立てます。 YOUR_TOKEN は前述の方法で生成した文字列に置き換えてください。また、添付ファイルは自由に指定してください。

TOKEN=YOUR_TOKEN
curl \
  -H "Authorization: Bearer $TOKEN" \
  -F 'data=@base.json;type=application/json' \
  -F 'file=@attach1.png' \
  -F 'file=@attach2.png' \
https://app.engn.jp/api/v1/deliveries/transaction

これで {"delivery_id":4} といったレスポンスが返ってくれば完成です。

注意点

添付ファイル付きメールを送信する際の注意点は次の通りです。

  • 送信情報(dataパラメータ)は必ずJSONファイルにしてください。また、Content-Typeがapplication/jsonになるように指定します。
  • 添付ファイルのサイズは1MBまでになります(契約により異なります)。
  • 添付ファイルに指定できるファイルの拡張子が決まっています。詳細はAPIドキュメント - 添付ファイルのサイズ制限と種類を参照してください。たとえばZipファイルは添付できません。
  • 添付ファイルはfileパラメータで指定します。複数指定可能です。

まとめ

blastengineは次の3ステップでメール送信できます。

  1. SPFレコードをセットする
  2. APIキーをゲットしてトークンを生成する
  3. APIを実行する

日本で提供しているサービスだけあって、日本のキャリアやユーザへの到達率も高いのが特徴です。ぜひblastengineをお試しください!

エンジニア向けメール配信システム「ブラストエンジン」

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?