Googleスプレッドシートやスライドを使っている方は多いと思いますが、Googleスプレッドシートでのメール送信は制約が多くて不便な思いをしていないでしょうか。CSVでダウンロードしてメールに添付するというのはちょっと面倒です。
そこでGoogleスプレッドシートなどで使えるマクロ機能であるGoogle Apps ScriptからCustomers Mail Cloudを簡単に使えるようにするSDKを作成しました。こちらを使えばとても簡単にメール送信が実現できます。
Customers Mail Cloudの設定
まずはCustomers Mail Cloudにて送信サーバの設定を行います。
ユーザ登録
ユーザ登録はまず、メールアドレスとパスワードを入力するところからはじまります。
入力したメールアドレス宛にメールアドレスの確認メール(仮登録受付メール)が届きますので、URLをクリックします。その後、名前や住所といった必要な情報を入力します。ユーザ登録が完了すると、無料トライアル開始のための審査が入ります。時間は長くとも30分程度です。「Customers Mail Cloud 無料トライアル利用開始のご案内」というメールが届いたら利用できます。
ログイン後に行うこと
ログインしたら、2つの作業を行う必要があります。
DKIMキーを設定する
DKIMキーはメールのなりすましを防止するための技術になります。メール配信を行うドメインのTXTレコードに対して設定します。管理コンソールでドメインを追加しようとすると、専用のキーが表示されます。
ドメインは s999999999999._domainkey.example.com
のような形式になります。設定する値は v=DKIM1; p=MIG...QAB
のように指定されるはずです。この設定はシステム管理者などに依頼して行ってもらってください。
DNS設定はすぐに反映されませんので、数分後にDNSを確認ボタンを押します。正しく設定されていれば、ドメインが追加登録できます。
ユーザを追加する
次にメール配信を行うユーザを追加します。これはAPI設定にて行います。ユーザ名(メールアドレス形式)、パスワードを設定します。また、利用できる機能を制限できます。例えばSMTPのみ、APIのみといった指定も可能です。
サーバに設定を反映する
設定を行ったら、それをサーバに反映します。サーバ構成機能にて行います。この反映を行わないと、DKIMやユーザ追加設定が反映されませんので注意してください。ここまでで以下の情報が入手できているはずです。
- APIユーザ
- APIキー
さらにAPIサーバのエンドポイントURLが必要です。これは契約しているプランによって異なりますのでご注意ください。
プラン名 | エンドポイントURL |
---|---|
無料トライアル | https://sandbox.smtps.jp/api/v2/emails/send.json |
Standardプラン | https://te.smtps.jp/api/v2/emails/send.json |
Proプラン | https://SUBDOMAIN.smtps.jp/api/v2/emails/send.json |
これらの情報はメール送信時に設定しますので覚えておいてください。
Google Apps Scriptでの実装について
まずGoogle Apps Scriptでライブラリを読み込みます。これはリソースメニューのライブラリから行います。ライブラリのIDとして、1RegQzjZLiJUacopzEoxmpTe5_vp7LP3r01aa-D9rf4sJRPZkifI4Mf7K
を入力してください。
以下のコードはIdentifierをデフォルトのCustomersMailCloudであるとして記述します。
初期化
先ほど取得したAPIユーザ、APIキーを使ってCustomersMailCloud SDKを初期化します。
var c = new CustomersMailCloud.Client(API_USER, API_KEY);
プランを設定する
次に契約プランを指定します。Proプランの場合はサブドメインを指定してください。
c.trial(); // 無料トライアルの場合 c.standard(); // Standardプランの場合 c.pro(SUBDOMAIN); // Proプランの場合
送信元を指定する
送信元を指定します。一つ目の引数が表示名、次がメールアドレスです。
c.setFrom('Customers Mail Cloud', 'info@smtps.jp');
送信先を指定する
送信先を指定します。複数アドレスに送る場合は addTo
を必要回数繰り返し実行してください。
c.addTo('テスト受信者', 'tester@smtps.jp');
件名、本文を指定する
件名、本文を指定します。
c.subject = 'テストメール from GAS'; c.text = "メールの本文です\n\n改行を入れました";
送信する
必要な情報が揃ったら送信を実行します。
try { var res = c.send(); Logger.log(res); } catch (e) { Logger.log(e); }
送信がうまくいっていれば、次のような結果が返ってきます。
{ "id":"\u003C1867844705.17288.1575893073288@mta01.sandbox.smtps.jp\u003E" }
まとめ
SDKにすることでGoogleスプレッドシートなどからのメール送信がとても簡単にできるようになります。Google Apps ScriptからはSMTP接続ができませんので、Web API経由でのメール送信になります。Customers Mail Cloudを使えば、大量のメール送信であっても簡単に実装できます。