我上个月问过这个问题,但没有得到答复。 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/