GASでGmailで検索した内容をスプレッドシードに書き出す、ということがしたく、色々調べたのですが、実行し、エラーも出ず完了するがメールの受信日時が空白になってしまいます。原因がわかりませんのでご教示ください。
(受信メールここから)
お問い合わせがありました。
【問い合わせ内容】
その他
【名前】
テスト送信者
【メールアドレス】
aaaaaa@aaa.com
【本文】
本文
本文
本文
上記、ご対応をお願いいたします。
(受信メールここまで)
GAS
1function myFunction() { 2 3 const threads = GmailApp.search('subject:お問い合わせがありました'); 4 5 for(const thread of threads){ 6 const messages = thread.getMessages(); 7 const message = messages[0]; 8 9 const mailID = message.getId(); 10 const mailDate = message.getDate(); 11 Logger.log(mailDate); 12 const mailBody = message.getPlainBody(); 13 14 15 //希望の文字列から抜き取り 16 const str01 = mailBody.match(/【問い合わせ内容】([\s\S]*)【名前】/); 17 const str02 = mailBody.match(/【名前】([\s\S]*)【メールアドレス】/); 18 const str03 = mailBody.match(/【メールアドレス】([\s\S]*)【本文】/); 19 const str04 = mailBody.match(/【本文】([\s\S]*)上記、ご対応をお願いいたします。/); 20 21 // 書き込むシートを取得 22 const sheet = SpreadsheetApp.getActive().getSheetByName('問い合わせ'); 23 24 // 最終行を取得 25 const lastRow = sheet.getLastRow() + 1; 26 27 // セルを取得→値を転記 28 sheet.getRange(lastRow, 1).setValue(mailDate[1]); 29 sheet.getRange(lastRow, 2).setValue(str01[1]); 30 sheet.getRange(lastRow, 3).setValue(str02[1]); 31 sheet.getRange(lastRow, 4).setValue(str03[1]); 32 sheet.getRange(lastRow, 5).setValue(str04[1]); 33 34 } 35 36} 37
Logger.log(mailDate)の中身はどうなってますか? コンソールに記述はありますか?
あと、「上記、ご対応をお願いいたします。」という表現は、無償で回答してくれようとしてくれる人に対しては、いささか失礼な表現だと思います。こちらは対応する義理も責任も何もないので…
詳細未確認ですけど、多分Date型で返って来てるような気がします。
ご回答ありがとうございます、解決しました。
>あと、「上記、ご対応をお願いいたします。」という表現は、無償で回答してくれようとしてくれる人に対しては、いささか失礼な表現だと思います。こちらは対応する義理も責任も何もないので…
書き方が悪く申し訳ありません、こちらはメールの定型文の一部でした。

回答1件
あなたの回答
tips
プレビュー