Customers Mail Cloud VBA SDK(非公式)を使ったメール送信処理について

システムからメール送信を行う処理を実装することはよくあります。多くの場合、ローカルサーバからSMTPを使いますが、FaaSなどでSMTPポートがふさがれていることがあります。そうした時に便利なのがWeb API経由でのメール送信になります。

今回、Excel/VBAでCustomers Mail Cloudを手軽に使えるようにするSDKを開発しましたので、その使い方を解説します。

コードについて

コードはgoofmint/Customers-Mail-Cloud-VBA: VBA(Excel)からCustomers Mail Cloudを実行します。にて公開しています。ライセンスはMIT Licenseで、自由に利用、改変可能です。

必要なライブラリについて

VBAの参照設定より Microsoft Script Runtime を指定します。また、VBA-tools/VBA-JSON: JSON conversion and parsing for VBAをダウンロードして、JsonConverter.basをインポートしてください。

初期化

コードを取り込んだら、まず初期化します。

Dim client As clsCustomersMailCloud: Set client = New clsCustomersMailCloud
client.ApiUser = "API_USER"
client.ApiKey = "API_KEY"

契約内容の設定

契約状態によってメソッドが異なります。

  • トライアル client.Trial
  • スタンダード client.Standard
  • プロ client.Pro(subdomain)

From/Toの設定

メールの送信元、送信先を設定します。 clsCustomersMailCloudAddress を利用してください。

Dim toAddress As clsCustomersMailCloudAddress: Set toAddress = New clsCustomersMailCloudAddress
toAddress.Name = "Tester"
toAddress.Address = "tester1@smtps.jp"
client.AddTo toAddress
Dim toAddress2 As clsCustomersMailCloudAddress: Set toAddress2 = New clsCustomersMailCloudAddress
toAddress2.Name = "Tester 2"
toAddress2.Address = "tester2@smtps.jp"
client.AddTo toAddress2

Dim fromAddress As clsCustomersMailCloudAddress: Set fromAddress = New clsCustomersMailCloudAddress
fromAddress.Name = "Admin"
fromAddress.Address = "info@smtps.jp"
client.SetFrom fromAddress

件名、本文の設定

件名、本文はそれぞれプロパティが用意されていますので、それを使ってください。

client.Subject = "Test mail"
client.Text = "Mail body"

メール送信の実行

必要なパラメータが揃ったらメール送信を行います。

client.Send

まとめ

現在はテキストメールのみでHTMLや添付ファイルには対応していません。今後対応予定ですが、ほとんどの需要はテキストメールにあるかと思います。ぜひExcel上で管理されているメールアドレス宛にメールを送信する際には、Customers Mail CloudとこのVBA SDKを試してみてください。

goofmint/Customers-Mail-Cloud-VBA: VBA(Excel)からCustomers Mail Cloudを実行します。