0

似乎 Gmail API 当前将邮件和邮件正文作为 MIME 返回。是否可以以纯文本或 HTML 格式返回?如果没有,我有没有办法打开获取的消息并以与我使用 SMTP 的方式等效的方式查看它?

for (Message message : messages) {
            String messageId = message.getId();
            Message m = service.users().messages().get(userId, messageId).setFormat("full").execute();
            System.out.println("Message toString(): " + m.toString());
            System.out.println("Message getRaw(): "  + m.getRaw());
            System.out.println("Message getPayload().toString(): " + m.getPayload().toString());
            System.out.println("Message getPayload().getBody().getData(): " + m.getPayload().getBody().getData());
            System.out.println("Message getSnippet: " + m.getSnippet());

        }
  1. toString() 返回 MIME 格式(我相信?)
  2. getRaw() 返回空值
  3. getPayload() 返回 toString() 的一部分?
  4. getPayload().getBody().getData() 返回 null
  5. getSnippet 返回消息的明文片段

Gmail的家伙,如果我想正确查看它,哪一个最有用?我假设 toString()。另外,您具体指的是哪个 Java MIME 库?我找到的库都提到了如何确定你的 MIME 类型。

4

1 回答 1

2

您可以使用 format=RAW 发出 message.get 请求,并在返回类型的 Message.raw 字段中将整个电子邮件作为一个大的 RFC 2822 字符串(并使用 java MIME 库对其进行解析)

或(在你的情况下可能更好)

您可以使用 format=FULL 发出 message.get 请求,并在 message.payload 字段中获取已解析的消息,该字段将是电子邮件部分的树,您可以遍历这些部分以查找 text/html、text/plain 部分,附件、其他部分等 MIME 格式的电子邮件(任何包含多个部分的邮件)是一种树形结构,等等。

于 2014-06-27T17:06:13.177 回答