Gmailの送信
Userのメソッドの具体的な利用法はいくつかありますが、最も簡単に利用できるのは「メールの送信」でしょう。Google Apps Scriptでは、Gmailを利用したメールの送信をサポートしています。実際に、簡単な送信例をあげましょう。
function sendmail(){ var res = Browser.inputBox("メッセージを入力:"); if (res != ""){ var user = Session.getUser(); var mail = user.getEmail(); MailApp.sendEmail(mail, "テスト送信", res); Browser.msgBox("送信しました。"); } }
これは、ログインしているユーザーのメールアドレスにメールを送るサンプルです。UserオブジェクトのgetEmailで取得したメールアドレスにメールを送信しています。なお、初めてこのスクリプトを実行するとき、スクリプトが外部のサービスにアクセスすることを許可するための認証画面が現れます。ここでアクセスを許可してください。拒否するとスクリプトは正常に動きません。
メールの送信は、「MailApp」オブジェクトの「sendEmail」メソッドで行います。これは次のような形で呼び出します。
MailApp.sendEmail( 送信アドレス , タイトル , 本文 );
非常にシンプルです。たったこれだけで、指定のアドレスにメールを送ることができます。考えてみると、Google Appsが利用可能ということは、既にGoogleアカウントでログインしているわけですから、ログインしなければ利用できないサービス類との連携も自由にできることになります。
メールにファイルを添付する
このsendEmailでは、第4引数としてオプション設定の情報を追加することができます。これにより、送信メールにさまざまな設定を追加することができます。この第4引数は、次のような項目をキーに持つ連想配列として値を用意します。
キー | 概要 |
bcc | BCCで送信するアドレスをテキストで指定します。 |
cc | CCで送信するアドレスをテキストで指定します。 |
htmlBody | HTMLメールを作成する場合のHTMLボディをテキストで指定します。 |
name | 送信者の名前を指定します。 |
noReply | no-replyの設定を真偽値で指定します。 |
replyTo | 返信先アドレスをテキストで指定します。 |
attachments | ファイルを添付する場合、その情報を配列で指定します。 |
これらの中で、やや分かりにくいのが、attachmentsによるファイル添付でしょう。これは、添付するファイルの情報を連想配列にまとめたものを、添付するファイルの数だけ配列としてまとめます。つまり、次のような構造で値を用意するわけです。
attachments:[ {fileName: ファイル名 , mimeType: 送信データの種類 , content: ファイルの内容 }, ……必要なだけ連想配列を用意…… ]
これで、ファイルを添付して送信することが可能になります。では、先ほどのサンプルを修正して、選択したセルの内容をテキストファイルとして添付して送信するようにしてみましょう。
function sendmail(){ var res = Browser.inputBox("メッセージを入力:"); if (res != "" & res != "cancel"){ var user = Session.getUser(); var mail = user.getEmail(); var data = ""; var values= SpreadsheetApp.getActiveRange().getValues(); for(var i = 0;i < values.length;i++){ for(var j = 0;j < values[i].length;j++){ data += values[i][j] + "\t"; } data += "\n"; } var attach = {fileName:"data.txt",mimeType:"text/plain",content:data}; var options = {attachments:[attach]}; MailApp.sendEmail(mail, "テスト送信", res, options); Browser.msgBox("送信しました。"); } }
ここでは、getActiveRangeのgetValuesで得られた値をタブと改行で一つのテキストにまとめ、それをdata.txtというファイルで添付して送信しています。このように、Google Apps Scriptを使えば、スプレッドシートのデータなどを整理し必要な相手にメールで送信するスクリプトが簡単に作成できるのです。