在 Gmail API 邮件上传中设置 internalDateSource

Set internalDateSource in Gmail API message upload

我正在尝试通过 Gmail API v1 从 imap 将邮件导入 Gmail。如果我使用 API 插入调用,我可以将 internalDateSource 指定为 dateHeader。使用该设置,邮件将在 Gmail 中显示原始发送日期,而不是导入日期。

如果我使用 Gmail API Upload 方法,我在多部分消息 header 中看不到任何指定 internalDateSource 的选项。所以Gmail会使用最新的receive header,也就是import.

Received: from 661831859263-hlgnfsakj37rged896gvl0mitub85lii.apps.googleusercontent.com
named unknown
by gmailapi.google.com
with HTTPREST;
Wed, 4 Mar 2015 00:01:04 -0800

关于在通过上传请求上传邮件时如何在 Gmail 中显示原始递送或发送日期的任何想法?

internalDateSource 应该设置为 URI 的一部分,而不是 header:

https://www.googleapis.com/upload/gmail/v1/users/<userId>/messages?internalDateSource=dateHeader

另外,请注意 messages.insert() does not de-duplicate mail nor does it do automatic threading. For migrating mail from another system, messages.import() 可能是更好的选择。

绝对值得通读 Migrating from the Email Migration API 页面以获得一些指导。