Google Apps ScriptとCustomers Mail Cloudで添付ファイル付きメールを送信する

Google Apps Scriptを使うことでオフィスファイル(ドキュメント、表計算、スライドなど)をプログラミングからコントロールできるようになります。何からの処理を行ったとして、その結果をどう受け取るかが問題になるでしょう。

例えばクライアント向けにレポートを作成して、それをボタン一つで添付ファイルにつけてメール送信する、そんな仕組みがCustomers Mail Cloud用のライブラリを使うことで簡単に実現できます。今回は添付ファイル付きメールの送信法方を解説します。

Customers Mail Cloudの使い方

Customers Mail Cloudはライブラリで 1RegQzjZLiJUacopzEoxmpTe5_vp7LP3r01aa-D9rf4sJRPZkifI4Mf7K を指定してください。添付ファイルはバージョン3以降で対応しています。

f:id:moongift:20200117165720p:plain

認証情報を設定する

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"
}

f:id:moongift:20200117165702p:plain

日本語のファイル名も利用できます。

まとめ

Customers Mail Cloudを使うことで、Google Drive内のファイルを添付してメール送信するのも簡単に実現できます。外部のファイルを取得して、それを添付ファイルにするのも簡単でしょう。ぜひお試しください。

クラウドからのメール送信を簡単に。確実に。| Customers Mail Cloud