Gmailの本文から該当のテキストを抽出し、スプレッドシートに反映させたい

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • Gmailの本文から該当のテキストを抽出したい

前提

ここに質問の内容を詳しく書いてください。
Google Appscript で下記コードを作っています。
参考にしたのは下記動画で、テストケースで使用しているメール内容は
下記スクリプトです。

動画 ⇒ 【Gmailを便利にするGAS活用】必要な情報をメールから取得する方法

メールスクリプト 

件名:発送依頼202108272000
本文:
ご担当者様

お疲れ様です。
以下ご対応お願いします。

発送先:名古屋
発送物:大型什器2、丸テーブル1
種別:緊急
備考:着払い

発生している問題・エラーメッセージ

下記コードのコメントアウト以外の部分までで、
mailId, mailDate, mailBody を取得し、スプレッドシートの各列に反映しています。
コメントアウト以下の内容を挿入して、「発送物」などの内容を取得したいのですが、
どこの箇所にコメントアウト箇所を挿入してどこを変更すれば取得できるのかが知りたいです。

該当のソースコード

ソースコード

function myFunction() {
const threads = GmailApp.search('subject:(発送依頼) newer_than:1h');
Logger.log(threads);

for (const thread of threads) {
Logger.log(thread);
const messages = thread.getMessages();
Logger.log(messages);
const message = messages[0];
Logger.log(message);

const mailId = message.getId(); const mailDate = message.getDate(); const mailBody = message.getPlainBody(); const record = [mailId, mailDate, mailBody]; const ssId = '1_lAF9OK2xLbE5Jsfx1IJGEsOYmlObv7JqQkRRpBO9NY'; const sheet = SpreadsheetApp.openById(ssId).getActiveSheet(); /* シート名で指定する場合は  const sheetName = "シート名"; const sheet = spreadsheet.getSheetByName(sheetName); */ const ids = sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues().flat(); if(!ids.includes(mailId)){ sheet.appendRow(record); } /* // 本文(mailBody)からのテキスト出力 // 正規表現を使って「名前」と「改行改行」の間の文字列を取得 const part = mailBody.match(/発送先([\s\S]*?)\r\n\r\n/)[0]; // テキスト出力 const str01 = part.split('発送先:')[1].split ('\r\n')[0];

  const str02 = part.split('発送物:')[1].split ('\r\n')[0];
const str03 = part.split('種別:')[1].split ('\r\n')[0];
const str04 = part.split('備考:')[1].split ('\r\n')[0];

*/ } }

試したこと

上記コードのコメントアウト以外の部分までで、
mailId, mailDate, mailBody を取得しています。
コメントアウト以下の内容を挿入して、「発送物」などの内容を取得すべく
chat GPTに聞いたりもしているのですが、GPTの知識の限界を超えました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント