Google Apps ScriptでGmailのメールをSpreadsheetに書き出す
受信トレイにあるスレッドを取得する
受信トレイにあるスレッドを取得するには、GmailAppクラスのgetInboxThreads()メソッドを使用します。
var threads = GmailApp.getInboxThreads();
getInboxThreads()メソッドはGmailThreadオブジェクトの配列を返します。
スレッドからメールを取得する
スレッド内のメールの数はGmailThreadオブジェクトのgetMessages()メソッドで取得できます。
Logger.log(thread.getMessageCount());
スレッド内のメールはGmailThreadオブジェクトのgetMessages()メソッドで取得します。
getMessages()メソッドは、GmailMessageオブジェクトの配列を返します。
var messages = thread.getMessages();
メールの情報を取得する
GmailMessageオブジェクトのメソッドを使ってメールの情報を取得します。
// 差出人
var from = message.getFrom();
// 宛先
var to = message.getTo();
// 送信日時
var date = message.getDate();
// 件名
var subject = message.getSubject();
// 本文
var body = message.getBody();
GmailのメールをSpreadsheetに書き出す
GmailのメールをSpreadsheetに書き出すコードです。
function getMail() {
var sheet = SpreadsheetApp.getActiveSheet();
var threads = GmailApp.getInboxThreads();
var row = 1;
for (var i = 0; i < threads.length; i++) {
var thread = threads[i];
var messages = thread.getMessages();
for (var j = 0; j < messages.length; j++) {
var message = messages[j];
var from = message.getFrom();
var to = message.getTo();
var date = message.getDate();
var subject = message.getSubject();
var body = message.getBody();
sheet.getRange(row, 1).setValue(from);
sheet.getRange(row, 2).setValue(to);
sheet.getRange(row, 3).setValue(date);
sheet.getRange(row, 4).setValue(subject);
sheet.getRange(row, 5).setValue(body);
row++;
}
}
}
Gmailのスレッドの件名をSpreadsheetに書き出す
Gmailのスレッドの件名をSpreadsheetに書き出すコードです。
function getThreadSubject() {
var sheet = SpreadsheetApp.getActiveSheet();
var threads = GmailApp.getInboxThreads();
for (var i = 0; i < threads.length; i++) {
sheet.getRange(i + 1, 1).setValue(threads[i].getFirstMessageSubject());
}
}