blastengineはシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先へ届くようになります。
今回は今開発中のVBA用SDK(以下VBA SDK)を使って、送信したメールの検索を行う方法を解説します。
コードについて
コードは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"
メールの検索
メール検索用のクラス
blastengine VBA SDKでメール検索を行う際には MailQuery
クラスを利用してください。
検索の種類
MailQueryクラスが対応している検索は以下の2つです。
- Find
配信種別が TRANSACTION もしくは BULK である配信結果を返却します。 - All
配信種別が TRANSACTION, BULK, SMTP である配信結果を返却します。
検索条件
MailQueryクラスにある各種プロパティが利用できます。
Dim Query As MailQuery
Set Query = Client.MailQuery
Query.DeliveryStart = DateAdd("d", -7, Now) ' 7日前から
Query.DeliveryType(0) = "SMTP" ' SMTPのみ
検索実行
検索は Find
または All
メソッドを使います。
Dim Results() As Mail
Results = Query.All
' または
Results = Query.Find
返却された Results
には Mail
クラスの配列が入っています。
Debug.Print Results(0).Subject
まとめ
送信したメールを検索する際には MailQuery クラスを利用してください。バルクメールで編集中になっているものも検索できます。検索語はメールの削除なども可能です。
VBA SDKは、Excelなどと組み合わせてメール配信ができるようになります。ぜひご利用ください。