Customers Mail Cloudには大きく分けて3つのAPIが用意されています。
- メール送信
- Webhook
- メール配信状態取得、更新
メール送信APIはSMTPやWeb APIを通じてメール送信を行います。Webhookはメールの受信や配信結果を受け取るための仕組みです。そしてメール配信状態取得APIはバッチ処理である日付のメール配信結果を受け取れます。
Webhookで処理するのも良いですが、バッチ処理でも問題ない場合はメール配信状態取得APIを利用する方が手軽です。サーバを立てる必要もなく、ローカルコンピュータからでも取得できます。
今回、TypeScript版ライブラリでメール配信状態取得APIに対応したので、その使い方を解説します。
ライブラリのインストール
ライブラリの名前は customers_mail_cloud です。npmやyarnでインストールできます。
npm i customers_mail_cloud -S
初期化
ライブラリの初期化は次のようなコードになります。あらかじめCustomers Mail CloudでAPIユーザ、APIキーを取得しておいてください。
const client = new CustomersMailCloud('API_USER', 'API_KEY')
メール配信状態オブジェクトの取得
メール配信状態は次の3つに分かれています。
メールの種類 | メソッド |
---|---|
正常終了したメール | cliend.delivery() |
エラーメール | client.bounce() |
ブロック | client.block() |
こちらの詳細についてはドキュメントを参考にしてください。
エラーメールを取得する
今回はエラーメールを取得してみます。日付も指定し、取得数(今回は100件)も取得しています。
const bounce = client.bounce() bounce.setServerComposition('sandbox') bounce.setStartDate(new Date(2020, 10, 5)) bounce.setLimit(100) const res = await bounce.list() console.log(res)
結果はメールの情報が入った配列になります。メールのIDが入っていますので、システムから送信した際のIDと突合して今後はメールを送信しないようにするといった処理ができるでしょう。
[ CMCMail { fields: { apiData: '', created: 2020-11-08T07:32:14.000Z, from: 'from@smtps.jp', messageId: '<84079d20-2194-11eb-ae4f-9ca3ba311822@mta03.sandbox.smtps.jp>', reason: "550 5.1.1 The email account that you tried to reach does not exist. Please try 5.1.1 double-checking the recipient's email address for typos or 5.1.1 unnecessary spaces. Learn more at 5.1.1 https://support.google.com/mail/?p=NoSuchUser o10si5305699pgp.521 - gsmtp (in reply to RCPT TO)", returnPath: 'from@return.sandbox.smtps.jp', status: 2, subject: 'Example Subject', to: 'example@example.com' } }, : }
配送データを取得する場合は次のようになります。
const delivery = client.delivery() delivery.setServerComposition('sandbox') delivery.setDate(new Date(2020, 10, 5)) delivery.setLimit(100) const res = await delivery.list() console.log(res)
まとめ
TypeScript版はサーバサイドはもちろん、AWS LambdaのようなFaaS上で動かすこともできます。Node.jsプロジェクトでメール送信処理が必要になったら、ぜひCustomers Mail Cloudをご利用ください。