0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

blastengine VBA SDKを使って購読停止(List-Unsubscribe)ヘッダを付けたメールを送信する

Posted at

blastengineはシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先へ届くようになります。

今回は今開発中のVBA用SDK(以下VBA SDK)を使って、List-Unsubscribeヘッダーを付けたメールを送信する方法を解説します。

コードについて

コードはGitHubにアップしてあります。ライセンスはMIT Licenseになります。

blastengineMania/blastengine-vba: blastengineのVBA SDKです

ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

getting-started-4.jpg

送信元ドメインのSPFを設定する

送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。

txt @ v=spf1 include:spf.besender.jp ~all

APIキーを取得する

ログイン後、管理画面の右上にある設定メニューに移動します。

getting-started-6.jpg

そして設定の中で、APIキーを取得します。

getting-started-5.png

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でメール送信を行う際には、3つのクラスが利用できます。

  • Transaction:
    都度配信用クラス
  • Bulk:
    一括配信用クラス
  • Mail:
    Transaction/Bulk双方を必要に応じて使い分けるクラス

基本的にはMailクラスを利用していれば問題ありません。以下のメソッド名は共通です。

List-Unsubscribe用の情報設定

List-Unsubscribeヘッダーを使う際には、 ListUnsubscribe メソッドを使います。

Dim Mail as Mail
Set Mail = client.Mail

Dim InsertCode As Dictionary
Set InsertCode = New Dictionary
InsertCode.Add "name", "Test"
InsertCode.Add "code", "123456"

Mail.Email "user@example.jp", InsertCode

Dim ListUnsubscribe As ListUnsubscribe
ListUnsubscribe.Url = "https://example.com/unsubscribe/__code__"
ListUnsubscribe.Email = "unsubscribed+__code__@example.com?subject=unsubscribe"
Mail.ListUnsubscribe = ListUnsubscribe

ListUnsubscribeUrlEmail をオプションに取ります。どちらもオプションです。__code__ は置換文字列になります。 Email の第2引数に指定したキーで置換されます(実際には __キー__ と置換されます)。今回の例であれば、URLは https://example.com/unsubscribe/123456 、メールアドレスは unsubscribed+123456@example.com?subject=unsubscribe になります。

メールの送信

メールの送信は send メソッドを使います。

If Mail.Send Then
		MsgBox "送信しました"
Else
		MsgBox "送信に失敗しました"
End If

まとめ

List-Unsubscribeヘッダーは、Gmailのガイドライン変更に伴って、対応が必須になっている機能になります。blastengineの場合は、APIとSMTP両方でList-Unsubscribeヘッダーに対応しています。

現在はGmailのみですが、他のメールプロバイダーについても対応が進んでいくことでしょう。blastengineを使って、配信したメールを確実に受信者に届けるためにも、List-Unsubscribeヘッダーの対応を行ってください。

blastengine API

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?