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)












































