Gmailにアクセスする (1/7)
作成:2011-07-13 08:05
更新: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を取り出す、というような作業を行うことになります。ここであげたサンプルでは、そのもっとも基本的な作業を行っているのです。
では、それぞれのオブジェクトの使い方について、順番に整理していきましょう。スクリプトの詳細については、それぞれのオブジェクトの説明がわかれば、自然と理解できるはずですので、とりあえず先へ進みましょう。
まずは「Gmail」からです。Gmailは、Googleの提供するサービスの中の「メール」を担当するものですね。Gmailに関する機能は、いくつかのオブジェクトとして提供されています。それらのオブジェクトを組み合わせることでGmailサービスに保管されているデータ(メールやスレッド、ラベルなど)を操作することができます。
まずは、ごく簡単なサンプルコードを見てもらいましょう。下のリスト欄に挙げたサンプルは、Gmailの受信ボックスにアクセスし、そこにあるメールをスレッドごとに整理してスプレッドシートに書き出すものです。シートには、まずそのスレッドのメール数が表示され、その後に各メールの日付、From、To、タイトルといったものが横に並んで書き出されます。
とりあえず、ここではただの関数として定義してありますので、そのままスクリプトを実行してください。また実行時には、必要なアクセスに関する認証が必要となります。例によって画面にダイアログが現れたら認証してください。
ここではGmailにアクセスし、そこから受信ボックスのスレッドを取得し、各スレッドからメールをとり出し、それぞれのメールの内容を取得してスプレッドシートに書き出す――といった流れで処理を行っています。では、Gmailにアクセスするために用意されているオブジェクトには、どのようなものがあるのでしょうか。ざっと整理してみましょう。
GmailApp――Gmailアプリのオブジェクトです。
GmailThread――スレッド(複数のメールのやり取りをひとまとめにして管理するもの)のオブジェクトです。
GmailMessage――これが個々のメールを管理するオブジェクトになります。
GmailLabel――ラベルのオブジェクトです。
Gmailでは、メールはスレッド単位でまとめられ管理されています。メールにアクセスするためには、まずGmailAppからGmailThreadを取得し、それからGmailMessageを取り出す、というような作業を行うことになります。ここであげたサンプルでは、そのもっとも基本的な作業を行っているのです。
では、それぞれのオブジェクトの使い方について、順番に整理していきましょう。スクリプトの詳細については、それぞれのオブジェクトの説明がわかれば、自然と理解できるはずですので、とりあえず先へ進みましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
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プログラミング入門」に戻る