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

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

新規登録して質問してみよう
ただいま回答率
85.69%
Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

784閲覧

【GAS】getIdで取得したGmailのメッセージIDが毎回変わる

kinuyorimoment_

総合スコア1

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2023/02/02 08:43

編集2023/02/02 11:48

実現したいこと

スプシでGmailの新規メールを一覧に出して管理するようにしています。

前提

スプシに吐き出すメールと過去のメールが重複しない様、
getIdで取得したメッセージIDをスプシ上で管理し、
IDから重複回避するようになっています。
↓参考にしたサイト↓
https://tonari-it.com/gas-add-contact-mail/

発生している問題・エラーメッセージ

何故か毎度毎度違うメッセージIDが吐き出され、
過去に取得したメールまで取得してしまいます。
メッセージIDは一意のものであると認識しておりますが、
何かの条件で変わってしまうのでしょうか。
もしくは、この事象を防ぐ事はできますでしょうか。

該当のソースコード

JavaScript

1function searchContactMail() { 2 3 const query = '"to:○○@gmail.com"'; 4 const start = 0; 5 const max = 10; 6 7 const threads = GmailApp.search(query, start, max); 8 const messagesForThreads = GmailApp.getMessagesForThreads(threads); 9 10 const values = []; 11 const sheet = SpreadsheetApp.getActiveSheet(); 12 const lastRow = sheet.getLastRow(); 13 const ids = sheet.getRange(2, 6, lastRow).getValues().flat(); 14 15 for(const messages of messagesForThreads){ 16 const message = messages[0]; 17 const id = message.getId(); 18 19 if(!ids.includes(id)){ 20 const record = [ 21 message.getDate(), 22 message.getReplyTo(), 23 message.getSubject(), 24 message.getPlainBody().slice(0,200), 25 message.getThread().getPermalink(), 26 message.getId() 27 ]; 28 values.push(record); 29 } 30 } 31 32 if(values.length > 0){ 33 sheet.getRange(lastRow + 1, 1, values.length, values[0].length).setValues(values); 34 } 35 36} 37 38

試したこと

様々なキーワードから検索しましたが、
解決方法が全く見出せずになってしまっています。
お手数をお掛け致しますが、ご助力・ご助言の程お願い申し上げます。

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.69%

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

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

質問する

同じタグがついた質問を見る

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。