Customers Mail Cloudには大きく分けて3つのAPIが用意されています。
- メール送信
- Webhook
- メール配信状態取得、更新
メール送信APIはSMTPやWeb APIを通じてメール送信を行います。Webhookはメールの受信や配信結果を受け取るための仕組みです。そしてメール配信状態取得APIはバッチ処理である日付のメール配信結果を受け取れます。
Webhookで処理するのも良いですが、バッチ処理でも問題ない場合はメール配信状態取得APIを利用する方が手軽です。サーバを立てる必要もなく、ローカルコンピュータからでも取得できます。
今回、Google Apps Script版ライブラリでメール配信状態取得APIに対応したので、その使い方を解説します。
ライブラリのインストール
Google Apps ScriptライブラリのIDは 1RegQzjZLiJUacopzEoxmpTe5_vp7LP3r01aa-D9rf4sJRPZkifI4Mf7K
です。Google Apps Scriptのライブラリより追加してください。基本的に最新版を導入してください。
初期化
ライブラリの初期化は次のようなコードになります。あらかじめCustomers Mail CloudでAPIユーザ、APIキーを取得しておいてください。
var c = new CustomersMailCloud.Client('API_USER', 'API_KEY')
メール配信状態オブジェクトの取得
メール配信状態は次の3つに分かれています。
メールの種類 | メソッド |
---|---|
正常終了したメール | cliend.delivery() |
エラーメール | client.bounce() |
ブロック | client.block() |
こちらの詳細についてはドキュメントを参考にしてください。
エラーメールを取得する
今回はエラーメールを取得してみます。日付も指定し、取得数(今回は100件)も取得しています。
c.trial(); var b = c.bounce(); b.start_date = '2020-11-01'; b.end_date = '2020-11-14'; var ary = b.list();
後はこの内容をGoogleシートに書き出してみます。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName('Sheet1'); var lastRow = sheet.getLastRow(); var fields = sheet.getRange('1:1').getValues()[0].filter(a => a != ''); for (var index in ary) { var row = parseInt(lastRow) + 1 + parseInt(index); var params = ary[index]; for (var c in fields) { var name = fields[c]; sheet.getRange(row, parseInt(c) + 1).setValue(params[name]); } }
これでエラーメールがGoogleシートの中に一覧で書き出されます。メールのIDも取得できますので、どのメールがエラーになったのかも簡単に確認できるでしょう。
まとめ
Google Apps Script版を使えばGoogleシートからメールを一括送信したり、他のシステムと組み合わせてメール送信する仕組みが簡単に実現できます。メールを一括送信する際にはぜひCustomers Mail Cloudと組み合わせてみてください。