【问题标题】:How to retrieve email based on time in Google api using c#?如何使用 c# 在 Google api 中根据时间检索电子邮件?
【发布时间】:2015-09-15 20:43:16
【问题描述】:

如何使用 c# 在 Google api 中根据时间检索电子邮件? 我们可以通过日期时间来查询字符串以获取最新的电子邮件吗? 在解决这个问题时,我只能找到日期。 有什么方法可以根据时间获取最新的邮件吗?

【问题讨论】:

  • 实际上我想要基于时间的邮件,而不是日期。查询参数类似于 after:2015/6/28 12:55:00 PM before:2015/7/1 02:30:00 Am。提前谢谢我想根据特定的时间间隔阅读电子邮件。

标签: c# google-api gmail-api


【解决方案1】:

是的,您可以通过传入查询参数以及 Gmail API 的 Get Message List 调用来实现,如下所示:

  List<Message> result = new List<Message>();
  UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
  request.Q = query;//This is where you put in your data query

  do
  {
      try
      {
          ListMessagesResponse response = request.Execute();
          result.AddRange(response.Messages);
          request.PageToken = response.NextPageToken;
      }
      catch (Exception e)
      {
          Console.WriteLine("An error occurred: " + e.Message);
      }
  } while (!String.IsNullOrEmpty(request.PageToken));

查询参数与您在邮箱搜索框中传递的参数相同。例如之后:2015/6/28 之前:2015/7/1

然后,通过使用消息 ID 调用 Get 来获取单个消息详细信息。

希望这会有所帮助。

【讨论】:

  • 实际上我想要基于时间的邮件,而不是日期。查询参数类似于 after:2015/6/28 12:55:00 PM before:2015/7/1 02:30:00 AM。提前致谢。
  • 是的,没错。本质上,您可以像在 Gmail 搜索框中一样传递相同的查询参数。
【解决方案2】:

Furhan 的回答很棒。我想补充一点,如果您想搜索比 2015/6/28 更具体的邮件,您可以提供例如after:&lt;TIME_IN_SECONDS_SINCE_EPOCH&gt;

假设您在 2015/6/28 12:55:00 之后和之前:2015/7/1 02:30:00 之后想要邮件,您会写:

after:1435496100 before:1435710600

【讨论】:

    猜你喜欢
    • 2011-09-26
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 2020-09-27
    相关资源
    最近更新 更多