LoginSignup
0
0

blastengineのVBA SDKを使って添付ファイル付きメール送信を行う

Posted at

blastengine(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先へ届けられます。

現在、VBA向けのblastengine SDKを開発しています。Excelを利用していますが、Accessなどでも使えるはずです。この記事では、その使い方を解説します。今回は添付ファイル付きメールの送信方法を解説します。

ユーザ登録する

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

image.png

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

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

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

APIキーを取得する

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

getting-started-6.jpg

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

getting-started-5.png

必要な情報について

SDKを使う上で必要なのは、先ほどのAPIキーとユーザIDになります。

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"

トランザクションオブジェクトの作成

メールを即時配信する際にはトランザクションオブジェクトを使います。

Dim transaction As Transaction
Set transaction = client.Transaction

必要な情報をセットする

続けて、トランザクションオブジェクトに必要なオブジェクトをセットします。

transaction.From "info@example.com", "Admin" ' 2つ目の引数(名前)は省略可能
transaction.To = "user@example.jp"
transaction.Subject = "テストメール"
transaction.TextPart = "これはテストメールです to __name__"

' 以下は任意
transaction.Cc(0) = "cc@example.jp"  ' 複数指定できます
transaction.Bcc(0) = "cc@example.jp" ' 複数指定できます
transaction.HtmlPart = "<h1>これはテストメールです to __name__</h1>" ' HTMLメール
' 置き換え文字列の設定方法
Dim dicInsertCode As Dictionary
Set dicInsertCode = New Dictionary
dicInsertCode.Add "name", "User"
transaction.InsertCode = dicInsertCode
' List-Unsubscribeの設定
Dim dicListUnsubscribe As Dictionary
Set dicListUnsubscribe = New Dictionary
dicListUnsubscribe.Add "url", "https://example.com/unsubscribe/__name__" ' 退会URL(任意)
dicListUnsubscribe.Add "mail", "unsubscribe__name__@example.com" ' 退会メールアドレス(任意)
transaction.ListUnsubscribe = dicListUnsubscribe

添付ファイルを追加する

添付ファイルは Attachments プロパティを使います。これはファイルパスを指定して作成します。

transaction.Attachments(0) = "C:\path\to\file.txt" ' テキストファイル
transaction.Attachments(1) = "C:\path\to\file.png" ' 画像ファイル

後は Send メソッドで送信できます。

If transaction.Send Then
		MsgBox "送信完了"
Else
		MsgBox "送信失敗"
End If

送信成功した場合は transaction.DeliveryId に送信IDが入ります。失敗した場合には transaction.Error にエラー情報が入ります。これはエラー内容がDictionary型で入っています。

Debug.Print JsonConverter.ConvertToJson(Transaction.Error)

コードについて

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

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

まとめ

blastengineには他にも一括メール配信を行ったり、ListUnsubscribeヘッダー機能などもあります。これらの機能も随時実装していきますので、ぜひ皆さんのシステム開発に役立ててください。

エンジニア向けメール配信システム「ブラストエンジン」

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