从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个帐户。 第一个(顶部)是我的主要帐户。 其他的是二级账户。
直接链接到我的主要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