Customers Mail Cloudの中に、Transactional Emailの暗号化設定というのがあります。これを使ったことがある方は、それほどいないのではないでしょうか。
今回はその使い方を実際のコードを含めながら紹介します。
Transactional EmailのZip暗号化設定とは
そもそもこの設定が何かというと、Transactional Email APIで取得できるデータを圧縮し、さらにパスワード暗号化するという機能になります。Transactional Email APIはCustomers Mail CloudでのイベントデータをダウンロードするAPIになります。イベントは例えばメール送信、エラーなどになります。
設定について
設定はTransactional Email暗号化設定画面にて行います。通常のダウンロード時にはパスワードは設定されません。
使い方
例えば送信メールをダウンロードします。今回はNode.jsで書きます。まず必要なライブラリをインポートします。superagentは npm install superagent -S
でインストールしてください。
const request = require('superagent'); const fs = require('fs');
次にURLを作成します。作成する手順はDeliveries | Customers Mail Cloudを確認してください。アクションで download
を指定するのがポイントです。
const version = 'v2' const resource = 'deliveries'; const action = 'download'; const format = 'json'; const url = `https://api.smtps.jp/transaction/${version}/${resource}/${action}.${format}`;
次に条件を指定します。server_compositionの値はsandbox、standard、サブドメインのいずれかになります。
// サーバの指定 const serverComposition = 'sandbox'; // 日付の指定 const date = '2020-03-09';
そしてダウンロード処理を実行します。Node.jsでsuperagentを使う場合は .responseType('blob')
としてファイルダウンロードを指定します。ダウンロードしたらファイルのパスを指定して書き出します。
const apiUser = 'API_USER'; const apiKey = 'API_KEY'; const res = await request .post(url) .responseType('blob') .send({ api_user: apiUser, api_key: apiKey, server_composition: serverComposition, date: date }); fs.writeFileSync('download.zip', res.body); })();
暗号化設定されている場合は、解凍時にパスワード入力が必要です。
パスワードが合っていれば解凍されます。
まとめ
ダウンロードされるCSVにはメールアドレスが入っていますので、取り扱いには注意が必要です。また、メールの件名はありますが、本文はありませんので注意してください。運用時にはパスワードロックをして保管しておくのがよさそうです。