前提・実現したいこと
現在該当のソースコードのとおり、GASを利用し、const queryにて特定の件名のメールに対して、
メール本文・送信者、日時などを抽出しているが、
メール本文の中の特定の文字・数字を抽出したい。
具体的な本文は以下の通り
ーーーーーー
ご予約内容
━━━━━
[予約No]
114097888
[ご利用希望日時]
2021年05月15日 10:00〜18:00
ーーーーーー
上記メール本文には必ず「予約No」、「ご利用希望日時」があり、その後改行したあとに、それぞれのIDや日時が記載されている。
そのため、現在は
A列:日時
B列:宛先
C列:件名
D列:本文全文
E列:メールリンク
となっているが、
A列:日時
B列:宛先
C列:件名
D列:本文全文
E列:本文内の予約no抽出(上記「114097888」の部分)
F列:本文内の御利用希望日時抽出(上記「2021年05月15日 10:00〜18:00」の部分)
E列:メールリンク
という形にしたい。
発生している問題・エラーメッセージ
なし
該当のソースコード
function searchContactMail() { const query = '"件名で抽出"'; const start = 0; const max = 10; const threads = GmailApp.search(query, start, max); const messagesForThreads = GmailApp.getMessagesForThreads(threads); const values = []; for(const messages of messagesForThreads){ const message = messages[0]; const record = [ message.getDate(), message.getTo(), message.getSubject(), message.getPlainBody().slice(0,2000), message.getThread().getPermalink() ]; values.push(record); } if(values.length > 0){ SpreadsheetApp.getActiveSheet().getRange(2, 1, values.length, values[0].length).setValues(values); } }
試したこと
以下のようなコードで一度該当箇所を抽出し、その後、replaceで番号や日時のみ返す(不必要部分の削除)で抜き出しができるのではないかと考えているが、どこに入れてよいかわからず、
エラーが出続けてしまう。
plainBody.match(/[予約No]./)[0].replace('[予約No]:', ''), plainBody.match(/[ご利用希望日時]./)[0].replace('[ご利用希望日時]:', ''),])
補足情報(FW/ツールのバージョンなど)
不明