Gmailに届いたメールをGASを利用してGoogleChatに通知する方法に関して質問です。
<行いたいこと>
同じ送信元から1日に何通も来るメールを、未読メッセージのみをチャット通知したい
<現状で行えている事>
① 受信トレイ内の未読でメールアドレスと件名を指定したメール本文をチャット通知
② 通知後は、対象のメールを既読にしてアーカイブする
<解決できないこと>
下記コードを組んで、届いたメールをチャットに通知することはできるようになったのですが、届いたメールの
全てのスレッドがチャットに通知されてしまう状態になってしまっております。
=現状の動作=
1通目のメールが届く ⇒ 1通目のメール本文をチャットに通知
2通目のメールが届く ⇒ 1通目、2通目のメール本文をチャットに通知
3通目のメールが届く ⇒ 1通目、2通目、3通目のメール本文をチャットに通知
新しく届いたメッセージのみをチャットへ通知したいと考えていますが、googleで検索をしたりしてみたのですが、
該当する内容が見つからず、解決に至りません。
必要な情報を表示していないかもしれませんが、どうかお力を頂けますと幸いです。
よろしくお願いいたします。
<作成したコード>
コードfunction gsuiteUpdateBlog() { //対象のメールの件名 var query = 'from:送信元メールアドレス is:unread 件名 in:inbox'; var mailMax = 1; var chatMessage; var threads = GmailApp.search(query, 0, mailMax); var messages = GmailApp.getMessagesForThreads(threads); var url = '転送先のチャットのWebhookURL'; for(var i = 0;i < threads.length; i++){ for(var t = 0;t < messages[i].length; t++){ //メール本文取得 chatMessage = messages[i][t].getPlainBody(); var botMessage = { 'text' : chatMessage} var options = { 'method': 'POST', 'headers' : { 'Content-Type': 'application/json; charset=UTF-8' }, 'payload':JSON.stringify(botMessage) } var result = UrlFetchApp.fetch(url, options); } threads[i].markRead(); threads[i].moveToArchive(); } }

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/11 05:11