前提・実現したいこと
Gmailに届く内容をスプレッドシートに自動転記したいと考え、
スプレッドシートにスクリプトを記入していますが、エラーが表示され思ったように動きません。
なおメールで届く文面は下記のようなものです。
お問い合わせがありました。
────────────────────────────────────
■お名前
◯◯
■お名前(ふりがな)
◯◯
■お問い合わせ内容
◯◯
■郵便番号
◯◯
■住所1
◯◯
■住所2
◯◯
■住所3
◯◯
■住所4
◯◯
■電話番号
◯◯
■メールアドレス
◯◯@◯◯
■太陽光発電設備の有無
◯◯
■自由記載
◯◯
追記
合わせて抽出する内容は
名前、お問合せ内容、郵便番号+住所1~4(同じセルに記入)、電話番号、メールアドレス、太陽光発電設備の有無、自由記載
になります。
発生している問題・エラーメッセージ
(匿名) @ コード.gs:31 (匿名) @ コード.gs:11 myFunction @ コード.gs:6
該当のソースコード
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 email = plainBody.match(/■メールアドレス[\s\S]*//); // お名前を取得 var name = 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(email[1]); sheet.getRange(lastRow, 3).setValue(name[1]); }); // スレッドに処理済みラベルを付ける var label = GmailApp.getUserLabelByName('処理済み'); thread.addLabel(label); }); }
試したこと
参考となりそうなサイトで上記と異なるGASの記述を試みたり、
正規表現のページをみてあれこれ試しましたが解決せず・・非エンジニアですが、いよいよ頭を抱えてしまいました。
問題解消のアドバイスを頂けたら有難いです。
補足情報(FW/ツールのバージョンなど)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/01 03:59
退会済みユーザー
2021/09/01 04:37 編集
2021/09/01 09:27
2021/09/01 09:36
退会済みユーザー
2021/09/01 11:32 編集
2021/09/03 01:43
退会済みユーザー
2021/09/04 01:44 編集
2021/09/07 05:52
退会済みユーザー
2021/09/07 12:57 編集
2021/09/08 00:55
退会済みユーザー
2021/09/09 13:34