以下は、Gmailのメール本文からURLを抽出してスプレッドシートに書き出すgoogle Apps Script(GAS)のサンプルコードです:JavaScript
function extractURLsFromEmails() {
// 検索条件を指定(必要に応じて変更)
var searchQuery = \u0026quot;is:inbox\u0026quot;;
// 検索条件に合致するスレッドを取得
var threads = GmailApp.search(searchQuery, 0, 50); // 最大50スレッドを取得
// スプレッドシートを開く
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
// ヘッダー行を追加
sheet.getRange(1, 1).setValue(\u0026quot;送信者\u0026quot;);
sheet.getRange(1, 2).setValue(\u0026quot;件名\u0026quot;);
sheet.getRange(1, 3).setValue(\u0026quot;日時\u0026quot;);
sheet.getRange(1, 4).setValue(\u0026quot;URL\u0026quot;);
var row = 2; // データは2行目から
// 各スレッドのメッセージを処理
for (var i = 0; i \u0026lt; threads.length; i++) {
var messages = threads[i].getMessages();
for (var j = 0; j \u0026lt; messages.length; j++) {
var message = messages[j];
var body = message.getPlainBody();
var sender = message.getFrom();
var subject = message.getSubject();
var date = message.getDate();
// URLを正規表現で抽出
var urlRegex = /(https?:\\/\\/[^\\s]+)/g;
var urls = body.match(urlRegex);
// 見つかったURLをスプレッドシートに書き出す
if (urls) {
for (var k = 0; k \u0026lt; urls.length; k++) {
sheet.getRange(row, 1).setValue(sender);
sheet.getRange(row, 2).setValue(subject);
sheet.getRange(row, 3).setValue(date);
sheet.getRange(row, 4).setValue(urls[k]);
row++;
}
}
}
}
}searchQueryを変更して、特定の条件のメールだけを対象にできます
このスクリプトの使い方:
1. スプレッドシートを開き、メニューから「拡張機能」→「Apps Script」を選択
2. 上記のコードを貼り付け
3. 保存して実行
カスタマイズのポイント:
・
・正規表現パターンを調整して、特定のURLだけを抽出することも可能です
・列の構成や取得する情報は自由に変更できます
注意点:
・大量のメールを処理する場合は、実行時間制限に注意してください
・初回実行時は権限の承認が必要です