SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習Google Apps Script

Google Apps ScriptでスプレッドシートからGoogleドキュメント以外のサービスにアクセスする

Google Apps ScriptによるGoogleドキュメントの操作(2)

  • X ポスト
  • このエントリーをはてなブックマークに追加

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("送信しました。");
  }
}
図8 スクリプトを実行すると、ログインしたユーザーのメールアドレスにメールを送信する。
図8 スクリプトを実行すると、ログインしたユーザーのメールアドレスにメールを送信する。

 これは、ログインしているユーザーのメールアドレスにメールを送るサンプルです。UserオブジェクトのgetEmailで取得したメールアドレスにメールを送信しています。なお、初めてこのスクリプトを実行するとき、スクリプトが外部のサービスにアクセスすることを許可するための認証画面が現れます。ここでアクセスを許可してください。拒否するとスクリプトは正常に動きません。

図9 スクリプトを実行するときに現れる認証画面。
図9 スクリプトを実行するときに現れる認証画面。

 メールの送信は、「MailApp」オブジェクトの「sendEmail」メソッドで行います。これは次のような形で呼び出します。

MailApp.sendEmail( 送信アドレス , タイトル , 本文 );

 非常にシンプルです。たったこれだけで、指定のアドレスにメールを送ることができます。考えてみると、Google Appsが利用可能ということは、既にGoogleアカウントでログインしているわけですから、ログインしなければ利用できないサービス類との連携も自由にできることになります。

メールにファイルを添付する

 このsendEmailでは、第4引数としてオプション設定の情報を追加することができます。これにより、送信メールにさまざまな設定を追加することができます。この第4引数は、次のような項目をキーに持つ連想配列として値を用意します。

sendEmailの第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("送信しました。");
  }
}
図10 シートを選択してスクリプトを実行すると、その範囲内のデータをdata.txtというテキストファイルとして添付し送信する。
図10 シートを選択してスクリプトを実行すると、その範囲内のデータをdata.txtというテキストファイルとして添付し送信する。

 ここでは、getActiveRangeのgetValuesで得られた値をタブと改行で一つのテキストにまとめ、それをdata.txtというファイルで添付して送信しています。このように、Google Apps Scriptを使えば、スプレッドシートのデータなどを整理し必要な相手にメールで送信するスクリプトが簡単に作成できるのです。

次のページ
Webページのフェッチ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
速習Google Apps Script連載記事一覧
この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5064 2010/04/26 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング