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プログラミング入門」に戻る