libro
www.tuyano.com
初心者のためのGoogle Apps Scriptプログラミング入門

Gmailにアクセスする (2/7)

作成:2011-07-13 08:09
更新:2011-11-04 16:34

■GmailAppオブジェクト(1) トレイにあるスレッドの取得

Gmail利用のもっとも基本となるのが「GmailApp」オブジェクトです。これが、Gmailに用意されているスレッドやメッセージをとり出したり、各種のデータを作成/削除したりする基本的な機能をまとめたものになります。

用意されているメソッド類は非常にたくさんありますので、働きごとに整理しておきましょう。まずは「特定のトレイにあるスレッドを取得する」ためのものからです。これは、以下のようなものが用意されています。

・受信トレイのスレッドを得る
変数 = GmailApp.getInboxThreads();
変数 = GmailApp.getInboxThreads( 開始位置, 最大数 );

・チャットのスレッドを得る
変数 = GmailApp.getChatThreads();
変数 = GmailApp.getChatThreads( 開始位置, 最大数 );

・重要トレイのスレッドを得る
変数 = GmailApp.getPriorityInboxThreads();
変数 = GmailApp.getPriorityInboxThreads( 開始位置, 最大数 );

・スター付きのスレッドを得る
変数 = GmailApp.getStarredThreads();
変数 = GmailApp.getStarredThreads( 開始位置, 最大数 );

・スパムのスレッドを得る
変数 = GmailApp.getSpamThreads();
変数 = GmailApp.getSpamThreads( 開始位置, 最大数 );

・ゴミ箱のスレッドを得る
変数 = GmailApp.getTrashThreads();
変数 = GmailApp.getTrashThreads( 開始位置, 最大数 );

各種のスレッドを取得するメソッドを取得します。それぞれ、引数なしなら全スレッドを、引数を指定する場合は、「いくつ目のスレッドから取り出すか」「最大いくつ取り出すか」をそれぞれ整数で指定します。

返値は、スレッドを示すGmailThreadオブジェクトの配列になります。ですから、この配列から順にGmailThreadをとり出し、その中にあるメールのオブジェクトを取り出して処理していけばよいわけですね。先ほどのサンプルでは、
var thds = GmailApp.getInboxThreads();
このようにして、受信トレイにある全スレッドを取り出していました。Gmailでは、メッセージを扱う場合は、まず「どのトレイにあるスレッドを取り出すか」を考えます。

この他、各トレイにあるスレッド数を調べる方法についても触れておきましょう。全部で幾つあるかは取得した配列の要素数で分かりますが、「まだ読んでいないスレッド数」は、以下のメソッドで調べることができます。

・トレイにある未読スレッド数を得る
変数 = GmailApp.InboxUnreadCount();
変数 = GmailApp.PriorityInboxUnreadCount();
変数 = GmailApp.StarredUnreadCount();
変数 = GmailApp.SpamUnreadCount();
変数 = GmailApp.TrashUnreadCount();
いずれも、未読スレッド数を示す整数値が返されます。どのスレッドが未読かどうかは、スレッドのオブジェクトで知ることができます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る