Gmailの内容をスプレッドシートに転記したいと思い、他の質問も参考にさせていただきながら、挑戦してみましたが、上手くいきません。
作成イメージとしては以下の通りとなります。
■メール本文
【氏名】
山田 太郎
【住所】
東京都大阪市1条2丁目3-4
【連絡先】
090 - 1234 - 5678
■転記先スプレッド
日時 | 氏名 | 住所 | 連絡先 |
---|---|---|---|
12/25 | 山田 太郎 | 東京都大阪市1条2丁目3-4 | 090 - 1234 - 5678 |
■テキストコード
function myFunction() { // 検索条件に該当するスレッド一覧を取得 var threads = GmailApp.search('subject:テスト'); // スレッドを一つずつ取り出す threads.forEach(function(thread) { // スレッド内のメール一覧を取得 var messages = thread.getMessages(); // メールを一つずつ取り出す messages.forEach(function(message) { // メール本文を取得 var plainBody = message.getPlainBody(); // メール本文が取得できているかログに出力して確認 Logger.log(plainBody); // 日時を取得 var date = message.getDate(); // お名前を取得 var name = plainBody.match(/【氏名】[\s\S]*//); // 住所を取得 var address = plainBody.match(/【住所】[\s\S]*//); // 連絡先を取得 var phone = plainBody.match(/【連絡先】[\s\S]*//); // 書き込むシートを取得 var sheet = SpreadsheetApp.getActive().getSheetByName('スプレッドシート'); // 最終行を取得 var lastRow = sheet.getLastRow() + 1; // セルを取得して値を転記 sheet.getRange(lastRow, 1).setValue(date); sheet.getRange(lastRow, 2).setValue(name); sheet.getRange(lastRow, 3).setValue(address); sheet.getRange(lastRow, 4).setValue(phone); }); // スレッドに処理済みラベルを付ける var label = GmailApp.getUserLabelByName('転記済み'); thread.addLabel(label); }); }
上手くいかない箇所としては
var name = plainBody.match(/【氏名】[\s\S]*//);
上記の ”)” の下に赤線が出てエラーとなります。
非エンジニアのため、
ひどいコードと思いますが
ご修正頂けますと幸いです。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/09 06:57