Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Gmail API获取电子邮件正文内容_Java_Email_Gmail Api - Fatal编程技术网

Java 如何使用Gmail API获取电子邮件正文内容

Java 如何使用Gmail API获取电子邮件正文内容,java,email,gmail-api,Java,Email,Gmail Api,我正在使用Gmail API在我的简单Java应用程序中获取电子邮件数据,我得到了我想要使用的一切,但我无法获取完整的电子邮件内容。我使用了message.getRaw(),但它返回null。 因此,任何人都可以帮助我如何访问电子邮件内容。使用消息。列出以获取消息的标识符,稍后将使用该标识符通过消息分别获取完全限定的消息。获取 出于某些原因,messages.list忽略请求中设置的字段,即google发回的json只包含默认字段“消息(id,threadId),nextPageToken”。这

我正在使用Gmail API在我的简单Java应用程序中获取电子邮件数据,我得到了我想要使用的一切,但我无法获取完整的电子邮件内容。我使用了message.getRaw(),但它返回null。
因此,任何人都可以帮助我如何访问电子邮件内容。

使用消息。列出以获取消息的标识符,稍后将使用该标识符通过消息分别获取完全限定的消息。获取

出于某些原因,messages.list忽略请求中设置的字段,即google发回的json只包含默认字段
“消息(id,threadId),nextPageToken”
。这就是为什么
message.getRaw()
返回
null


使用messages.list获取消息的标识符,这些标识符稍后将用于通过messages.get分别获取完全限定的消息

出于某些原因,messages.list忽略请求中设置的字段,即google发回的json只包含默认字段
“消息(id,threadId),nextPageToken”
。这就是为什么
message.getRaw()
返回
null


对于电子邮件内容,您是指电子邮件中的文本吗?:)对于电子邮件内容,您是指电子邮件中的文本吗?:)
/**
 * Returns empty messages sent between after and before 
 * that contain only identifiers.
 * @param after
 * @param before
 * @param fields fields to be included in response 
 *               (IGNORED see api-explorer)  
 * @return 
 */
public List<Message> getEmptyMessages(Date after, Date before, String fields) {    
    Gmail.Users.Messages.List request = gmailService.users().messages().list("me")
             // or setQ("is:sent after:yyyy/MM/dd before:yyyy/MM/dd")
            .setLabelIds(Arrays.asList("SENT"))
            .setQ("after:" + gmailFormat(after) +" "+ 
                  "before:"+ gmailFormat(before))
            .setMaxResults(MAX_RESULTS)
            .setFields(fields);

    List<Message> list = new LinkedList<>();
    ListMessagesResponse response = null;

    do {
       response = request.execute();
       list.addAll(response.getMessages());
       request.setPageToken(response.getNextPageToken());

    } while (request.getPageToken() != null && request.getPageToken().length() > 0);

    return list;
}

public String gmailFormat(Date d) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    return sdf.format(d);
}
/**
 * Returns "fully-qualified" message.
 * @param id     identifier of the message to be obtained.
 * @param fields fields to be included in response e.g. "raw,snippet"
 *               (use api-explorer to build this string)
 * @return 
 */
public Message getFullyQualifiedMessage(String id, String fields) {
    return gmailService.users().messages().get("me", id)
            .setFormat("FULL")
            .setFields(fields)
            .execute();
}