メール本文中のURLをスプレッドシートに書き出すGASを作って欲しいのですが

1件の回答

回答を書く

1207027

2026-02-11 11:20

+ フォロー

以下は、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++;
}
}
}
}
}


このスクリプトの使い方:

1. スプレッドシートを開き、メニューから「拡張機能」→「Apps Script」を選択
2. 上記のコードを貼り付け
3. 保存して実行

カスタマイズのポイント:
searchQueryを変更して、特定の条件のメールだけを対象にできます
・正規表現パターンを調整して、特定のURLだけを抽出することも可能です
・列の構成や取得する情報は自由に変更できます

注意点:
・大量のメールを処理する場合は、実行時間制限に注意してください
・初回実行時は権限の承認が必要です

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有