【问题标题】:Getting the thread id in Gmail在 Gmail 中获取线程 ID
【发布时间】:2013-04-06 04:50:20
【问题描述】:

我正在寻找一种方法来确定如何在 Gmail 上获取特定电子邮件的线程 ID,就在它发送之前或点击发送按钮的位置。

目前,我正在使用 Javascript 来从电子邮件中删除其他项目并将它们存储在一个记录中,该记录对除线程 ID 之外的所有内容都非常有效。

我在URL中发送邮件后可以找到线程ID:

https://mail.google.com/mail/u/0/?shva=1#inbox/13ddda647539dcca

在这种情况下,线程 ID(如果我是对的 - 是 13ddda647539dcca。

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript multithreading email gmail


    【解决方案1】:

    如果有人仍然感兴趣 - 您可以在发送电子邮件后通过观察页面顶部显示的 检索线程 ID。此跨度包含一个链接,该链接具有名为“param”的属性,该属性具有线程 ID。

    【讨论】:

      【解决方案2】:

      你可以试试:

      var matched = window.location.hash.match(/[A-Za-z0-9]+$/);
      if (matched) {
          // Found alphanumeric string at end of hash
      }
      

      您可以通过matched[0] 获取值。

      window.location.hash 应该只抓取“#inbox/13ddda647539dcca”部分。然后正则表达式将匹配字符串末尾的任何字母数字字符。因此,“收件箱”与线程 ID 用“/”隔开这一事实很重要。

      当然,所有这一切都取决于 Gmail 保持 URL 遵循与当前看起来相同的约定的可靠性。

      【讨论】:

      • 感谢您的回复。如果我只是从 URL 中获取它,这将起作用,但我试图在发送电子邮件之前获取此 id - 或单击 send 按钮时。主要目的是让我在发送后可以直接访问这封电子邮件。
      • @HappyCry 我明白你的意思,但我有点困惑。这是用于电子邮件还是用于回复线程?回复线程时,它应该在您回复的 URL 中可用,所以我的方法应该有效。如果是新电子邮件,我不确定您想要什么(除非电子邮件已在撰写)。似乎当您撰写时,URL 末尾有“#compose”。只有 您发送/保存电子邮件后,URL 才会更改为具有线程 ID。我不'在您最终发送之前不要认为 ID 已创建,因为 ID 是在服务器上创建的
      • 我认为你是对的。这种方法很适合在回复框中使用。由于 ID 是在服务器上创建的,您能想到我可以在 send 的电子邮件中附加的任何其他唯一标识符吗?感谢您的帮助,非常感谢。
      • @HappyCry 嗯,我什么都想不起来。我的意思是,我不知道 Gmail 的内部结构,但是对于 new 事物的正常工作方式,唯一标识符是在创建之后设置的,并且之前没有身份。就像我说的那样,如果电子邮件在撰写期间保存,则 URL 会更改,您可以通过这种方式获取线程 ID。但我敢肯定,在电子邮件发送之前,您可能会发现一些“独特”的东西。我试图扫描 HTML,但找不到任何东西(比如隐藏元素),但这可能是 Google 团队的问题
      猜你喜欢
      • 2014-02-01
      • 2018-09-11
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多