Google Apps Scriptを使うことでオフィスファイル(ドキュメント、表計算、スライドなど)をプログラミングからコントロールできるようになります。何からの処理を行ったとして、その結果をどう受け取るかが問題になるでしょう。
例えばクライアント向けにレポートを作成して、それをボタン一つで添付ファイルにつけてメール送信する、そんな仕組みがCustomers Mail Cloud用のライブラリを使うことで簡単に実現できます。今回は添付ファイル付きメールの送信法方を解説します。
Customers Mail Cloudの使い方
Customers Mail Cloudはライブラリで 1RegQzjZLiJUacopzEoxmpTe5_vp7LP3r01aa-D9rf4sJRPZkifI4Mf7K
を指定してください。添付ファイルはバージョン3以降で対応しています。
認証情報を設定する
APIを使って操作しますので、あらかじめCustomers Mail CloudでAPIユーザとAPIキーを生成しておきます。この二つの情報を使って初期化します。
var apiUser = 'api@smtps.jp'; var apiKey = 'YOUR_API_KEY'; var c = new CustomerMailCloud.Client(apiUser, apiKey);
また、契約情報を指定します。これはトライアル、スタンダード、Proの3つがありますので必要に応じて実行します。
c.trial();
送信元、送信先を設定する
次に送信元のアドレス、送信先情報を設定します。
c.setFrom('Customers Mail Cloud', 'info@smtps.jp'); c.addTo('テスト受信者', 'test@smtps.jp');
件名、本文を設定する
件名と本文は必須になりますので、適切に指定してください。
c.subject = 'テストメール from GAS'; c.text = "メールの本文です\n\n改行を入れました";
ドキュメントを取得する
多くの場合、Google Drive内にあるファイルがターゲットになるかと思います。今回はGoogleスプレッドシートを対象とします。そのため、まずはファイルを取得し、それをBlob形式にします。
var docId = '1CF...RmA'; var fileBlob = DriveApp.getFileById(docId).getBlob();
そして添付ファイルとして追加します。添付ファイルは幾つでも追加できます。
c.addAttachment(fileBlob);
メールを送信する
準備ができたらメールを送信します。
try { var res = c.send(); Logger.log(res); } catch (e) { Logger.log(e); } }
メール送信がうまくいっていれば、次のようなログが返ってきます。
{ "id":"\u003C1867844705.17288.1575893073288@mta01.sandbox.smtps.jp\u003E" }
日本語のファイル名も利用できます。
まとめ
Customers Mail Cloudを使うことで、Google Drive内のファイルを添付してメール送信するのも簡単に実現できます。外部のファイルを取得して、それを添付ファイルにするのも簡単でしょう。ぜひお試しください。