Gmail API - 有没有办法按接收时间排序的顺序列出邮件?

adi*_*tya 6 gmail google-api gmail-api

有没有办法使用 Google Mail API 按接收时间的顺序列出 Gmail 邮件?

尽管 API 按时间倒序返回邮件。对于像 10 封邮件这样的非常小的数据集,我发现了差异。

邮件列表API响应:

 {
 "messages": [
  {
   "id": "15afb61b8d220a19",
   "threadId": "15afb61b8d220a19"
  },
  {
   "id": "15afb618f941d73f",
   "threadId": "15afb618f941d73f"
  },
  {
   "id": "15afb6174711c7af",
   "threadId": "15afb6174711c7af"
  },

  ...
  ...
  {
   "id": "159bc283f63d5eb7",
   "threadId": "159bc283f63d5eb7"
  },
  {
   "id": "159bc283dc97cd87",
   "threadId": "159bc283dc97cd87"
  },
  {
   "id": "159bc283d95f097c",
   "threadId": "159bc283d95f097c"
  }
 ],
 "resultSizeEstimate": 9
}
Run Code Online (Sandbox Code Playgroud)

回复的第一条消息(最新):

Id: 15afb61b8d220a19
Date: "Thu, 23 Mar 2017 19:06:08 +0530" 
internalDate: "1490276168000"
Run Code Online (Sandbox Code Playgroud)

列表中的第二封邮件:

Id: 15afb618f941d73f
Date: "Thu, 23 Mar 2017 19:05:58 +0530"
internalDate: "1490276158000"
Run Code Online (Sandbox Code Playgroud)

…… 列表中倒数第二封邮件:

Id: 159bc283dc97cd87 
Date: "Fri, 20 Jan 2017 05:54:30 -0800" 
internalDate: "1484920470000"
Run Code Online (Sandbox Code Playgroud)

列表中的最后一封邮件(应该是最旧的,但不是):

Id: 159bc283d95f097c
Date: "Fri, 20 Jan 2017 05:54:31 -0800"
internalDate: "1484920471000"
Run Code Online (Sandbox Code Playgroud)

abi*_*ita 3

我猜这是基于此线程的预期行为。

...messages.list不以日期 ASC 或日期 DESC 返回。据我所知,它们是随机返回的。

您还可以使用搜索语法按电子邮件日期进行过滤。