GASを活用してメール内容をスプレッドシートに転記・書き出す手順ガイド


GASを始めるための基本設定
まずは、GASの基本的な設定だ。これを押さえておくと、次のステップに進みやすくなる。
GASプロジェクトを作成
まず、Googleドライブにアクセスして新規GASプロジェクトを作成する。
1. Googleドライブを開く。
2. 「+新規」ボタンをクリックし、「その他」から「Google Apps Script」を選択。
3. プロジェクトに適当な名前をつけて保存する。
スプレッドシートへの転記の準備
メール内容を転記するには、スプレッドシートを用意する必要がある。
スプレッドシートを用意
メールのどの情報をスプレッドシートに書き出すか考えて、適切な列を作成するんだ。
1. スプレッドシートを開き、自分のプロジェクト用に適宜列名を設定する(例:件名、送信者、内容)。
2. このスプレッドシートのURLをコピーしておく。後で使用する。


GASを使ったメール取得と転記スクリプトの作成
ここで、GASを使ってGmailから情報を取り出し、スプレッドシートに転記するスクリプトを作成していく。
Gmailからメールデータを取得
GmailAppを使ってメール情報を取得する。以下が基本のスクリプトだ。
function getEmails() {
var threads = GmailApp.getInboxThreads(0, 10);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
threads.forEach(function(thread) {
var message = thread.getMessages()[0];
var subject = message.getSubject();
var sender = message.getFrom();
var body = message.getPlainBody();
sheet.appendRow([subject, sender, body]);
});
}
このスクリプトでは、受信トレイの最初の10通のメールを取得し、それらをスプレッドシートに記入している。
スクリプトの内容解説
GmailApp.getInboxThreads(0, 10): 受信トレイの最初の10通のスレッドを取得する。
thread.getMessages()[0]: 各スレッドから最初のメッセージを取得する。
sheet.appendRow([subject, sender, body]): メールの件名、送信者、本文をスプレッドシートの新しい行に追加する。
練習問題
上記スクリプトを修正して、メールの受信日時をスプレッドシートに追加するスクリプトを書いてみよう。
解答・解説
function getEmailsWithTimestamp() {
var threads = GmailApp.getInboxThreads(0, 10);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
threads.forEach(function(thread) {
var message = thread.getMessages()[0];
var subject = message.getSubject();
var sender = message.getFrom();
var body = message.getPlainBody();
var dateReceived = message.getDate();
sheet.appendRow([subject, sender, body, dateReceived]);
});
}
GmailApp.getMessages(): スレッドが持つすべてのメッセージを取得する。
message.getDate(): メールの受信日時を取得する。
結果の配列に受信日時dateReceivedを追加し、スプレッドシートに記入している。

