Java谷歌Gmail API读取所有消息



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

这是我目前使用的代码。

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();
        }
    }

如何以纯文本形式打印出消息的全部内容?

对于那些想知道答案的人来说,你只需要添加这段代码。

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

这将给你html代码的工作,在那里你可以提取你需要的东西。希望这对你有帮助!

要读取主体部分,需要从返回的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())));

相关内容

  • 没有找到相关文章

最新更新