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

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

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

■GmailThreadオブジェクトについて

GmailTheadは、スレッドを管理するオブジェクトです。先に、GmailApp.getInboxThreads()などのメソッドを使って、指定のトレイにあるスレッドを取得する方法を説明しました。これらで得られるスレッドのオブジェクトが、GmailThreadです。

GmailThreadには、スレッドに関する情報を取得したり、現在の状況を操作するためのメソッドがひと通り用意されています。まずは、スレッドの情報を得るためのメソッドから挙げておきましょう。

・メッセージ数を得る
変数 =《GmailThread》.getMessageCount();

・メッセージを得る
変数 =《GmailThread》.getMessages();

・ラベルを得る
変数 =《GmailThread》.getLabels();

・最初のメッセージのタイトルを得る
変数 =《GmailThread》.getFirstMessageSubject();

スレッドには、多数のメッセージがまとめられています。それらのメッセージに関する情報を得るためのものです。getMessageCountはメッセージ数を整数値として返します。getMessagesはスレッドに含まれるメッセージをメッセージのオブジェクト(GmailMessage)の配列として返します。またgetFirstMessageSubjectは、最初のメッセージのタイトルを返すものです。(←これ、意外に使うんですよ)

続いて、各スレッドの状態を調べるためのメソッドです。未読か既読か、重要かどうか、受信箱、チャット、スパム、ゴミ箱のそれぞれのトレイに置かれているかどうかをチェックするものです。

・未読かどうかチェックする
変数 =《GmailThread》.isUnread();

・重要かどうかチェックする
変数 =《GmailThread》.isImportant();

・受信箱にあるかチェックする
変数 =《GmailThread》.isInInbox();

・チャットかどうかチェックする
変数 =《GmailThread》.isInChats();

・スパムかどうかチェックする
変数 =《GmailThread》.isInSpam();

・ゴミ箱にあるかチェックする
変数 =《GmailThread》.isInTrash();

いずれも返値は真偽値になります。これは、値を調べるだけのもので、値を設定するためには別のメソッドが用意されています。これらも以下にまとめておきましょう。

・既読をON/OFFする
《GmailThread》.markRead();
《GmailThread》.markUnread();

・重要度をON/OFFする
《GmailThread》.markImportant();
《GmailThread》.markUnimportant();

・主なトレイに移動する
《GmailThread》.moveToInbox();
《GmailThread》.moveToArchive();
《GmailThread》.moveToSpam();
《GmailThread》.moveToTrash();

いずれも、特に引数もなく、ただ呼び出すだけですから簡単ですね。最後に、ラベルの操作についても触れておきましょう。

・ラベルの追加/削除
《GmailThread》.addLabel( ラベル );
《GmailThread》.removeLabel( ラベル );

ラベルを追加したり取り除いたりするものですが、これらはラベルのオブジェクト(GmailLabel)を引数に渡してやる必要があります。ですので、このオブジェクトの使い方がわかるまで利用はもう少し我慢しましょう。

では、簡単な利用例を下にあげておきましょう。これは先ほどのサンプルを修正したものです。受信ボックスにあるスレッドをチェックし、「重要」というテキストが含まれているスレッドすべてを未読にしてアーカイブするものです。

GmailApp.getInboxThreadsで全スレッドを取得した後、繰り返しの中で、まずgetFirstMessageSubjectで最初のメッセージのタイトルをとり出し、indexOfで指定のテキストがあるか調べます。そしてテキストを含む場合は、markUnreadmoveToArchiveで未読とアーカイブを実行しています。

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

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

●プログラム・リスト●

function checkMail(){
	var thds = GmailApp.getInboxThreads();
	for(var n in thds){
		var thd = thds[n];
		var subject = thd.getFirstMessageSubject();
			if (subject.indexOf("重要",0) != -1){
				thd.markUnread();
				thd.moveToArchive();
		}
	}
}
※関連コンテンツ

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