Gmailにアクセスする (1/7)
作成:2011-07-13 08:05
更新:2011-07-13 08:05 |
■Gmail利用に必要なオブジェクト |
---|
Google Apps Scriptは、Googleが提供するさまざまなサービスを統合的に処理することができます。今まで、Googleドキュメントのスプレッドシートぐらいしか利用してきませんでしたが、Google Apps Scriptの基本部分がひと通りわかったところで、それ以外のサービスについて考えていくことにしましょう。
まずは「Gmail」からです。Gmailは、Googleの提供するサービスの中の「メール」を担当するものですね。Gmailに関する機能は、いくつかのオブジェクトとして提供されています。それらのオブジェクトを組み合わせることでGmailサービスに保管されているデータ(メールやスレッド、ラベルなど)を操作することができます。 まずは、ごく簡単なサンプルコードを見てもらいましょう。下のリスト欄に挙げたサンプルは、Gmailの受信ボックスにアクセスし、そこにあるメールをスレッドごとに整理してスプレッドシートに書き出すものです。シートには、まずそのスレッドのメール数が表示され、その後に各メールの日付、From、To、タイトルといったものが横に並んで書き出されます。 とりあえず、ここではただの関数として定義してありますので、そのままスクリプトを実行してください。また実行時には、必要なアクセスに関する認証が必要となります。例によって画面にダイアログが現れたら認証してください。 ここではGmailにアクセスし、そこから受信ボックスのスレッドを取得し、各スレッドからメールをとり出し、それぞれのメールの内容を取得してスプレッドシートに書き出す――といった流れで処理を行っています。では、Gmailにアクセスするために用意されているオブジェクトには、どのようなものがあるのでしょうか。ざっと整理してみましょう。 GmailApp――Gmailアプリのオブジェクトです。 GmailThread――スレッド(複数のメールのやり取りをひとまとめにして管理するもの)のオブジェクトです。 GmailMessage――これが個々のメールを管理するオブジェクトになります。 GmailLabel――ラベルのオブジェクトです。 Gmailでは、メールはスレッド単位でまとめられ管理されています。メールにアクセスするためには、まずGmailAppからGmailThreadを取得し、それからGmailMessageを取り出す、というような作業を行うことになります。ここであげたサンプルでは、そのもっとも基本的な作業を行っているのです。 では、それぞれのオブジェクトの使い方について、順番に整理していきましょう。スクリプトの詳細については、それぞれのオブジェクトの説明がわかれば、自然と理解できるはずですので、とりあえず先へ進みましょう。 (by. 掌田津耶乃.)
|
function getMail(){ var sheet = SpreadsheetApp.getActiveSheet(); var thds = GmailApp.getInboxThreads(); var row = 1; for(var n in thds){ var thd = thds[n]; sheet.getRange(row++,1).setValue(thd.getMessageCount()); var msgs = thd.getMessages(); for(m in msgs){ var msg = msgs[m]; var from = msg.getFrom(); var to = msg.getTo(); var date = msg.getDate(); var subject = msg.getSubject(); var body = msg.getBody(); sheet.getRange(row,1).setValue(date); sheet.getRange(row,2).setValue(from); sheet.getRange(row,3).setValue(to); sheet.getRange(row,4).setValue(subject); //sheet.getRange(row,5).setValue(body); // カット! row++; } } } |
次へ >> |
「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る