Gmailに届く内容をスプレッドシートに自動転記したいと考え、
スプレッドシートにスクリプトを記入していますが、エラーが表示され思ったように動きません。
なおメールで届く文面は下記のようなものです。
お問い合わせがありました。
■ メールアドレス
taroyamada@gmail.com
■ お名前
山田 太郎
発生している問題・エラーメッセージ
TypeError: Cannot read property '1' of null
(匿名) @ コード.gs:36
(匿名) @ コード.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('supportに届いたメール'); // 最終行を取得 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の記述を試みたり、
正規表現のページをみてあれこれ試しましたが解決せず・・非エンジニアですが、いよいよ頭を抱えてしまいました。
問題解消のアドバイスを頂けたら有難いです。
補足情報
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。