質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

8178閲覧

GASでGmailの受信日時のスプレッドシードへの書き出しが出来ない

yamat

総合スコア1

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2022/02/14 10:37

編集2022/02/15 01:25

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Eskee

2022/02/14 10:48

Logger.log(mailDate)の中身はどうなってますか? コンソールに記述はありますか? あと、「上記、ご対応をお願いいたします。」という表現は、無償で回答してくれようとしてくれる人に対しては、いささか失礼な表現だと思います。こちらは対応する義理も責任も何もないので…
Eskee

2022/02/14 11:35

詳細未確認ですけど、多分Date型で返って来てるような気がします。
yamat

2022/02/15 01:24

ご回答ありがとうございます、解決しました。 >あと、「上記、ご対応をお願いいたします。」という表現は、無償で回答してくれようとしてくれる人に対しては、いささか失礼な表現だと思います。こちらは対応する義理も責任も何もないので… 書き方が悪く申し訳ありません、こちらはメールの定型文の一部でした。
guest

回答1

0

ベストアンサー

js

1 const mailDate = message.getDate(); 2 Logger.log(mailDate); 3 ... 4 sheet.getRange(lastRow, 1).setValue(mailDate[1]);

mailDateは配列ではないので、[1]は不要です。

投稿2022/02/14 13:03

int32_t

総合スコア20872

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamat

2022/02/15 01:28

ご回答ありがとうございます、解決しました。 単純な間違いでお恥ずかしいです、大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問