GASでGmail文面のURLをすべて抽出したいです。
解決したいこと
GASでGmail文面のURLをすべて抽出したいです。
いろんなものを参考にしながらコードを作ったのですが、それで実行すると文面にいくつかあるURLのうち最初のひとつしか抽出できないようです。すべて抽出するにはどのような書き方にしたらよいでしょうか。
発生している問題・エラー
例えばひとつメールを開くと、下記のようにいくつもURLが記載されています。
このなかでいうとはじめの https://dietnavi.com/ ではなく、
ふたつめの https://dietnavi.com/click.php?cid=50398&id=3378685&sec=5730e09c
のほうを抽出したいのですが…
下記のように各メールにつき最初の1つめのURLしか抽出できていないようです。
これを各メールすべてのURLを抽出できるようにしたいのですが…
該当するソースコード
function getMessage() {
var condition = 'label:point';
var start = 0;
var max = 500;
var threads = GmailApp.search(condition, start, max);
var messages = GmailApp.getMessagesForThreads(threads);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('URL');
var firstRow = 2;
messages.forEach(function(message){
var body = message[0].getPlainBody();
var URL = body.match(/(https?:\/\/[\w!?\/+_~=;.,*&@#$%()'[\]-]+)/m)[0];
var data = [URL];
sheet.getRange(firstRow, 1, 1, data.length).setValues([data]);
firstRow++;
});
どなたかご教授いただけますと幸いです。
0