非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【GAS】Gmailの特定のメール一覧をスプレッドシートに列挙させる方法

   

GAS(Google Apps Script)を使ったGmailのメール一覧をスプレッドシートに展開する方法について紹介します、単に列挙するだけでなくタイトルに特定の文字列が入っているものを抽出させたいと思います。

 

抽出させるメール例

今回は僕のメールの中にある航空会社の通知メールの中から更にANAにしぼって抽出させたいと思います。

 

GASソースコード

ソースコードはこちらです。3行目でタイトルに「ANA」が含まれているもののみを抽出させています。messages.forEach文で、タイトル、送信者アドレス、日付、IDをスプレッドシートに展開させています。

var sheet = SpreadsheetApp.getActiveSheet();
// タイトルに「ANA」が含まれているメール抽出
var threads = GmailApp.search('subject:ANA');
var r=1;
threads.forEach(function(thread) {
 var messages = thread.getMessages();
 messages.forEach(function(message) {
   sheet.getRange(r,1).setValue(message.getSubject());
   sheet.getRange(r,2).setValue(message.getFrom());
   sheet.getRange(r,3).setValue(message.getDate());
   sheet.getRange(r,4).setValue(message.getId());
   r++;
 });
});
 

 

実行結果

上記プログラムを実行した結果がこちら。うまくANAからのメールのみ列挙できました。

 

複数条件の場合

複数条件も指定できます。代表例としてざっとこんなところかと。

特定タイトル且つ指定日以降に送信されたもの(AND条件)
var threads = GmailApp.search('subject:ANA after:2019/1/1');
 

 

タイトルのキーワードを更に絞る(AND条件)
var threads = GmailApp.search('(subject:ANA) (subject:2次元バーコード)');
 

 

ANAまたはJALを抽出(OR条件)
var threads = GmailApp.search('{(subject:ANA) (subject:JAL)}');
 

 

 

スポンサーリンク

 - Google Apps Script