【问题标题】:Java Google Gmail API Read All MessagesJava Google Gmail API 阅读所有邮件
【发布时间】:2015-12-10 18:49:42
【问题描述】:

到目前为止,我已经能够浏览我的一个帐户中的所有电子邮件并打印出消息 sn-ps,但我希望能够打印出完整的消息。

这是我目前使用的代码。

public static void getEmails() {
        try {
            ListMessagesResponse response = service.users().messages().list("me").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").setPageToken(pageToken).execute();
                } else {
                    break;
                }
            }

            for (Message message : messages) {
                System.out.println(message.getId());
                Message test = service.users().messages().get("me", message.getId()).execute();
                System.out.println(test.getSnippet());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

如何以纯文本形式打印出邮件的全部内容? (不是原始格式或任何东西)。

【问题讨论】:

    标签: java google-api gmail-api


    【解决方案1】:

    对于那些想知道答案是什么的人,您只需添加此代码。

    Message test = service.users().messages().get("me", message.getId()).setFormat("full").execute();
                    System.out.println(StringUtils.newStringUtf8(Base64.decodeBase64(test.getPayload().getBody().getData())));
    

    这将为您提供可使用的 html 代码,您可以在其中提取所需的内容。希望对您有所帮助!

    【讨论】:

      【解决方案2】:

      要读取body部分,需要从返回的JSON对象中提取出来,然后解码:

      import org.apache.commons.codec.binary.Base64;
      import org.apache.commons.codec.binary.StringUtils;
      
      //Code from the post
      
      System.out.println(StringUtils.newStringUtf8(Base64.decodeBase64(test.getPayload().getParts().get(0).getBody().getData())));
      

      【讨论】:

      • 很难看出任何区别,除了没有解释的.get(0) - 将其与上面的 7 岁答案进行比较。而且由于变量test 甚至没有定义,它可能没用。
      猜你喜欢
      • 2012-01-01
      • 2021-06-29
      • 2016-03-03
      • 1970-01-01
      • 2020-04-28
      • 2014-08-30
      • 2015-09-15
      • 2017-04-21
      • 1970-01-01
      相关资源
      最近更新 更多