Gmail "InternalDateSource"查询参数不起作用

标签 gmail gmail-api

我上个月问过这个问题,但没有得到答复。 Google 不是应该监控此论坛的 Gmail API 问题吗?还有其他地方可以让我获得支持(甚至付费吗?) 我有点绝望。无论如何...

我正在使用“插入”API 将邮件添加到 Gmail,并使用查询参数internalDateSource=dateHeader。然而,Gmail 似乎忽略了我的 RFC822 数据中的“日期” header ,只是替换了当前日期。我的 POST 网址如下所示:

https://www.googleapis.com/gmail/v1/users/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="fd888e988fbd9a909c9491d39e9290" rel="noreferrer noopener nofollow">[email protected]</a>/messages?uploadType=multipart&internalDateSource=dateHeader&access_token=XYZ

我上传的数据如下所示:

{ "labelIds": [ "Label_96" ],"raw": "RnJvbTo...tDQr_" }

毫无疑问,正确的“Date” header 位于编码的原始数据中。 (这是一个例子):

Date: Wed, 1 Oct 2011 10:47:00 -08:00

Google 正确获取所有其他 header 和消息数据。我究竟做错了什么?顺便说一句,我确实尝试将“有效负载”和“ header ”添加到我的 json 中,以尝试指定日期 header 。没有变化。

最佳答案

TL;DR

我认为您的日期格式错误。应该是

Wed, 1 Oct 2011 10:47:00 -0800

不是

Wed, 1 Oct 2011 10:47:00 -08:00

这个问题确实引起了我的兴趣,我成功了!

首先,我创建了一个示例邮件,对其进行编码并使其 URL 安全:

btoa(
        "Date:  Thu, 1 Jan 1970 01:00:00 -0400\n"
        "Content-Type: text/plain;\n" +
        "to: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0b6e736a667b676e4b6c666a626725686466" rel="noreferrer noopener nofollow">[email protected]</a>\n" +
        "from: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="24415c4549544841644349454d480a474b49" rel="noreferrer noopener nofollow">[email protected]</a>\n" +
        "subject: Example Subject Text\n\n" +

        "The actual message text goes here"
  ).replace(/\+/g, '-').replace(/\//g, '_');

我使用了自己的电子邮件地址,而不是 [email protected] ,当然。

这会产生以下 base64 编码数据:

RGF0ZTogIFRodSwgMSBKYW4gMTk3MCAwMTowMDowMCAtMDQwMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CnRvOiBleGFtcGxlQGdtYWlsLmNvbQpmcm9tOiBleGFtcGxlQGdtYWlsLmNvbQpzdWJqZWN0OiBFeGFtcGxlIFN1YmplY3QgVGV4dAoKVGhlIGFjdHVhbCBtZXNzYWdlIHRleHQgZ29lcyBoZXJl

然后,我就模仿了你的要求:

POST https://www.googleapis.com/gmail/v1/users/me/messages?internalDateSource=dateHeader&key={YOUR_API_KEY}

{
 "raw": "RGF0ZTogIFRodSwgMSBKYW4gMTk3MCAwMTowMDowMCAtMDQwMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CnRvOiBlbXRob2xpbkBnbWFpbC5jb20KZnJvbTogZW10aG9saW5AZ21haWwuY29tCnN1YmplY3Q6IEV4YW1wbGUgU3ViamVjdCBUZXh0CgpUaGUgYWN0dWFsIG1lc3NhZ2UgdGV4dCBnb2VzIGhlcmU="
}

这导致在我的“所有邮件”标签下的纪元开始时出现一封邮件。

关于Gmail "InternalDateSource"查询参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30246995/

相关文章:

html - 时事通讯无法隐藏 gmail 上的响应内容以及当我尝试转发电子邮件时

c# - 通用 :3 - Push into an endpoint URL (pubsub api for gmail)

google-app-engine - 如何模拟 GMail API 的结果?

email - 如何通过 Gmail 推送通知获取新邮件详细信息?

java - com.sun.mail.smtp.SMTPSendFailedException : 530-5. 5.1 需要身份验证(Java 邮件)

java - Android 中的后退按钮就像 Gmail 应用程序中的后退按钮吗?

android - 有没有一种方法可以关闭 Gmail 应用程序在电子邮件布局中的自动调整大小功能?

Java Mail Api 不返回所有邮件

email - 使用 gmail API 转发邮件

python - 如何使用python使用google API从gmail获取电子邮件主题?