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