使用Gmail API从列表中获取邮件的ID,以便以后在自动化中使用

时间:2019-02-25 16:41:34

标签: java arraylist automation gmail-api

我目前有一个快速的代码块,可以对自动化的Gmail帐户进行排序,以查找最新消息并列出其ID。我怎样才能将该ID准确地保存到单独的字符串中,以便以后可以使用它来获取消息以进行比较。我是否缺少特定的代码行,还是应该以某种方式重写它?谢谢。

使用查询创建消息列表。它会打印每条消息的ID。

private List<Message> listMessage(Gmail service,
                                  String query) throws IOException {
    ListMessagesResponse response = service.users().messages().list("me").setQ(query).execute();

    List<Message> messages = new ArrayList<Message>();
    while (response.getMessages() != null) {
        messages.addAll(response.getMessages());
        if (response.getNextPageToken() != null) {
            String pageToken = response.getNextPageToken();
            response = service.users().messages().list("me").setQ(query)
                    .setPageToken(pageToken).execute();
        } else {
            break;
        }
    }
    if(messages.isEmpty()) {
        listMessage(service, query);
    }
    for (Message message : messages) { //This is going to print the ID of each message.
        System.out.println(message.toPrettyString());
    }
    return messages;
}

这将找到最新的。

public void listGmailEmail() {
    long unixTime = Instant.now().getEpochSecond();
    try {
        listMessage(service, "after: " + unixTime);

    } catch (IOException ignored) { }
}

1 个答案:

答案 0 :(得分:0)

我终于知道了。

  1. 获取消息列表
  2. 将列表转换为JSON
  3. 创建一种获取消息的方法
  4. 过滤JSON以获取消息ID
  5. 将消息ID应用于新方法
  6. 获取消息

    queryCountDict = df2.set_index('QueryCount')['PageId'].to_dict()
    
    df1['QueryCount'] = df1['PageId'].map(queryCountDict)
    
相关问题