blastengineはシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先へ届くようになります。
今回は今開発中のVBA用SDK(以下VBA SDK)を使って、エラー停止CSVを取得する方法を解説します。
コードについて
コードはGitHubにアップしてあります。ライセンスはMIT Licenseになります。
blastengineMania/blastengine-vba: blastengineのVBA SDKです
ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
txt @ v=spf1 include:spf.besender.jp ~all
APIキーを取得する
ログイン後、管理画面の右上にある設定メニューに移動します。
そして設定の中で、APIキーを取得します。
SDKのインストール
SDKは リリースページでマクロ付きExcelファイルをダウンロードするか、リポジトリの内容をvbacでコンパイルしてください。
blastengineMania/blastengine-vba: blastengineのVBA SDKです
参照設定について
VBAエディタで、ツール > 参照設定 から、以下の参照設定を追加してください。
- Microsoft ActiveX Data Objects 6.1 Library
- Microsoft XML, v6.0
※ 将来的には、参照設定を不要にする予定です。
初期化
先ほどのAPIキーとユーザIDを使って初期化します。
Dim client As new Blastengine
client.ApiKey = "YOUR_API_KEY"
client.UserId = "YOUR_USER_NAME"
エラー停止CSVの検索
エラー停止CSV検索用のクラス
blastengine VBA SDKでメール検索を行う際には Error
クラスを利用してください。
検索条件
Errorクラスにある各種プロパティが利用できます。
Dim Error As Error
Set Error = Client.Error
Error.ErrorStart = DateAdd("d", -3, Now) ' 3日前から
検索実行
検索は Start
メソッドを使います。取得失敗した場合は False
が返ります。
If Error.Start = False Then
Debug.Print JsonConverter.ConvertToJson(Error.Error)
Exit Sub
End If
取得処理は非同期で行われるため、取得が完了するまで待機する必要があります。
While Error.Job.Finished = False
Application.WAIT (Now + TimeValue("0:00:01"))
Wend
CSVを取得する
処理が完了したら、CSVの内容を取得します。
Debug.Print Client.GetFile(Error.Job.ErrorFileUrl)
結果はCSVの内容です。
配信停止番号 登録日時 メールアドレス 応答コード エラーメッセージ
46 2024/9/25 12:00 user@example.com 554(banned) 配信が禁止されたアドレスへの配信のためブロックしました
まとめ
エラーの内容を解析して、メールアドレスごとの対応ができます。また、エラー原因も分かりますので、必要に応じてデータを修正したり、対応を行ってください。
VBA SDKは、Excelなどと組み合わせてメール配信ができるようになります。ぜひご利用ください。