node.js – 从Gmail API获取电子邮件的直接URL(列出消息)

我正在从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个帐户.第一个(在顶部)是我的主要帐户.其他的是二级账户.

Google Accounts

我的主Gmail的直接链接是:https://mail.google.com/mail / u / 0 / #intabox /

我的第二个帐户的直接链接是:
https://mail.google.com/mail / U / 1 /#收件箱/

我的第三个帐户和最后一个帐户的链接是:
https://mail.google.com/mail / U / 2 /#收件箱/

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

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

因此,如果消息存在于inbox / u / 2中,我们无法获得直接链接.由于API未返回收件箱编号,因此https://mail.google.com/mail/#inbox/2527bfcqed7d54c1将始终重定向到主要收件箱/ u / 0.

最佳答案
您可以提供一个查询参数authuser,其中包含您要使用的电子邮件地址的值:

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

这适用于常规Gmail客户端,但它不适用于Google Inbox,因为该帖子的ID不是网址的一部分.但是,您可以搜索邮件的唯一Message-ID标头以获得类似的效果:

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

转载注明原文:node.js – 从Gmail API获取电子邮件的直接URL(列出消息) - 代码日志