Gmailで検索した結果を、指定したシートに書き出す手順を書いていきます。
STEP1
Gmailで右端の▼をクリックして
STEP2
検索条件を決めます
ここでは@googleから来たメールで
検索する期間を以下のように設定しておきます
STEP3
検索ボタンをクリックするとこのように検索結果が表示されます
STEP4
スプレッドシートを新規作成してスクリプトエディタを開きます
STEP5
以下のコード.gsの query に検索条件を入れて getMailByQuery() を実行します
コード.gs
/************************************ GmailをsearchQueryで検索した結果をシートに書き出す ************************************/ function getMailByQuery() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("シート1"); setHeader(sheet);//一行目に見出しを入力する var query = 'after:2019/2/25 before:2019/2/28';//Gmailで検索したいメール var threads = GmailApp.search(query);//スレッドたちを取得 Logger.log(threads[0].getMessages()[0].getSubject());//1スレッド目の最初のメッセージをログに出してみる for(var i = 0; i < threads.length; i++) { var thread = threads[i];//スレッドを一つずつ取得 var messages = thread.getMessages();//スレッドのメッセージたちを取得 var array = []; for(var j = 0; j < messages.length; j++) { var message = messages[j];//メッセージを一つずつ取得 var subject = message.getSubject();//件名を取得 var body = message.getPlainBody() //本文 var date = message.getDate(); //送信日時 array.push([subject, body, date]) } setValues(sheet, array); } } /************************************ シートに入力する ************************************/ function setValues(sheet, array){ var lastRow = sheet.getLastRow(); var startRow = lastRow + 1; var startCol = 1; var numRows = array.length; var numCols = array[0].length; var range = sheet.getRange(startRow, startCol, numRows, numCols); range.setValues(array); } /************************************ 1行目に自動入力する ************************************/ function setHeader(sheet){ var array = [ "subject", "body", "date" ]; var start_row = 1; var start_col = 1; var num_rows = 1; var num_cols = array.length; var range = sheet.getRange(start_row, start_col, num_rows, num_cols); range.setValues([array]); } |
補足
実行するとこのような許可が求められます
参考
search(query)
https://developers.google.com/apps-script/reference/gmail/gmail-app#search(String)