システムからメール送信を行う処理を実装することはよくあります。多くの場合、ローカルサーバから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を実行します。