从Gmail API获取电子邮件的直接链接(列表消息)

我正在从Node.JS的Google Gmail API中检索邮件,但是在生成或检索到电子邮件的直接链接时遇到问题。

目前,我正在使用下面的代码:

var link = 'https://mail.google.com/mail/u/0/#inbox/' + messageContent.threadId;

但是,正如你所看到的,它总是导航到用户的主收件箱( /u/0/ )。 我试图链接的电子邮件位于我的第二个和第三个收件箱中。

我尝试使用get消息调用获取电子邮件的收件箱号码,但不幸的是,它不返回该数据。

我也尝试了下面这段代码,但它也没有工作。 它只是加载我的主要收件箱。

var link = 'https://mail.google.com/mail/#inbox/' + messageContent.threadId;

有谁知道如何生成正确和直接的电子邮件链接?

提前致谢。


testing用例

首先,loginGoogle的两个或更多帐户。 正如您在下面的图片中看到的,我已login到3个帐户。 第一个(顶部)是我的主要帐户。 其他的是二级账户。

Google帐户

直接链接到我的主要Gmail是: https : //mail.google.com/mail / u / 0 / #收件箱/

直接链接到我的第二个帐户是: https : //mail.google.com/mail / u / 1 / #inbox /

我的第三个和最后一个帐户的链接是: https : //mail.google.com/mail / u / 2 / #inbox /

这些数字取决于您login帐户的顺序。 您login的第一个帐户将始终是您的主帐户。

所以我们以2527bfcqed7d54c1作为示例消息ID。 剩下的唯一东西就是生成与邮件的直接链接,但问题是,我们只知道链接的电子邮件,而不知道收件箱的号码(例如/u/2 )。

因此,如果邮件存在inbox /u/2我们无法获得直接链接。 由于API不会返回收件箱号码,因此https://mail.google.com/mail/#inbox/2527bfcqed7d54c1将始终redirect到主要的收件箱/u/0

您可以使用您想要使用的电子邮件地址的值提供查询参数authuser

 https://mail.google.com/mail?authuser=me@gmail.com#all/1567f47dd61869df 

这适用于普通的Gmail客户端,但对Google收件箱不起作用,因为线程的ID不是url的一部分。 但是,您可以search邮件的唯一Message-ID标题以获得类似的效果:

 https://inbox.google.com/search/rfc822msgid:<19.68.00363.4B73EA75@twitter.com>?authuser=me@gmail.com