我正在从Node.JS中的Google Gmail API检索邮件,但我无法生成或检索电子邮件的直接链接。
目前,我使用以下代码:
var link = 'https://mail.google.com/mail/u/0/#inbox/' + messageContent.threadId;
但正如您所见,它始终导航到用户的主要收件箱(/u/0/
)。我尝试链接的电子邮件位于我的第二个和第三个收件箱中。
我尝试使用get message call获取电子邮件的收件箱编号,但遗憾的是它不会返回该数据。
我也尝试过以下代码,但它也没有用。它只是加载我的主要收件箱。
var link = 'https://mail.google.com/mail/#inbox/' + messageContent.threadId;
有人知道如何生成正确且直接的电子邮件链接吗?
提前致谢。
测试用例
首先,登录Google中的两个或多个帐户。如下图所示,我登录了3个帐户。第一个(在顶部)是我的主要帐户。其他的是次要账户。
指向我的主Gmail的直接链接是:https://mail.google.com/mail / u / 0 / #inbox /
指向我的第二个帐户的直接链接是: https://mail.google.com/mail的 / U / 1 / #inbox /
我的第三个和最后一个帐户的链接是: https://mail.google.com/mail的 / U / 2 / #inbox /
这些数字取决于您登录帐户的顺序。您登录的第一个帐户将始终是您的主帐户。
因此,我们将2527bfcqed7d54c1
作为示例消息ID。唯一剩下的就是生成与消息的直接链接,但问题是,我们只知道它所链接的电子邮件,而不是收件箱的编号(例如/u/2
)。
因此,如果邮件存在于收件箱/u/2
中,我们就无法获得直接链接。由于API未返回收件箱编号,因此https://mail.google.com/mail/#inbox/2527bfcqed7d54c1
将始终重定向到主要收件箱/u/0
。
答案 0 :(得分:12)
您可以提供一个查询参数authuser
,其中包含您要使用的电子邮件地址的值:
https://mail.google.com/mail?authuser=me@gmail.com#all/1567f47dd61869df
这适用于常规Gmail客户端,但它不适用于Google收件箱,因为该帖子的ID不是网址的一部分。但是,您可以搜索邮件的唯一Message-ID
标题以获得类似的效果:
https://inbox.google.com/search/rfc822msgid:<19.68.00363.4B73EA75@twitter.com>?authuser=me@gmail.com