■スレッド検索
・件名から検索
var thd = GmailApp.search('subject:"検索文字"');
検索条件は文字列で指定subject:""で指定した文字を含む件名のスレッドを配列で取得
・複数の検索条件を指定
//and
var thd = GmailApp.search('subject:("検索文字1" "検索文字2")');
//or
var thd = GmailApp.search('subject:{"検索文字1" "検索文字2"}');
複数条件を指定するときは半角スペースを空けて( )で括ればand条件、{ }で括ればor条件となる
//送信者を指定
var thd = GmailApp.search('from:"メールアドレス"');
//日付を指定
var thd = GmailApp.search('after:2021/01/01');
//複合条件(and)
var thd = GmailApp.search('(subject:"検索文字" from:"メールアドレス" after:2021/01/01)');
件名以外での検索も可能and、orの指定は上と同じ
主な検索条件
subject:件名
from:送信者
before:日付(指定日以前)
after:日付(指定日以降)
label:ラベル
is:「unread」で未読、「read」で既読
has:「attachment」添付ファイルあり
・取得する件数を指定
var thd = GmailApp.search('subject:"検索文字"', 0, 10);
検索条件で取得できたスレッドのうち、何番目から何件取得するかを指定.search()の第二引数は取得開始index、第三引数は取得件数
取得開始indexは最新のスレッドから0始まり
※上のコードは最新(index 0)から10件を取得する
■メッセージ取得
・スレッドからメッセージを取得
var thd = GmailApp.search('subject:"検索文字"');
for(let i=0; i<thd.length; i++){
var msgs = thd[i].getMessages();
}
取得した各スレッドからメッセージの配列を取得最初に受信したメールはmsgs[0]
以降そのメールに返信がある場合はmsgs[1]、msgs[2]、・・・と取得できる
■メールの内容取得
・メッセージからメール内容を取得
var thd = GmailApp.search('subject:"検索文字"');
for(let i=0; i<thd.length; i++){
var msgs = thd[i].getMessages();
//件名
var strSub = msgs[0].getSubject();
//本文
var strBody = msgs[0].getBody();
}
最初の受信メールの件名と本文を取得
var thd = GmailApp.search('subject:"検索文字"');
for(let i=0; i<thd.length; i++){
var msgs = thd[i].getMessages();
for(let j=0; j<msgs.length; j++){
//件名
var strSub = msgs[j].getSubject();
//本文
var strBody = msgs[j].getBody();
}
}
返信メールも含めて取得する場合はループを使用主な関数
.getSubject():件名
.getBody():本文
.getDate():受信日
.getFrom():送信者
.getCc():CC
.getBcc():BCC
0 件のコメント:
コメントを投稿