1

对于我尝试使用 Gmail API 检索的消息,我无法获得更多的文本数据片段。这是我正在使用的一段测试代码:

    public string GetMail()
    {
        GmailService service = (GmailService)HttpContext.Current.Session["service"];

        Message messageFeed = service.Users.Messages.List("me").Execute().Messages.First();

        UsersResource.MessagesResource.GetRequest getReq = new UsersResource.MessagesResource.GetRequest(service, "me", messageFeed.Id);

        getReq.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Full;
        Message message = getReq.Execute();

        return message.Raw;
    }

出于某种原因,当我调用 message.Raw 时,它返回 null。我能够检索其他属性,因为 format=minimal 设置将基于我正在玩的 API 游乐场示例。

但是在我的代码中,我将格式枚举设置为“完整”,但我仍然无法检索消息的完整数据。

我在这里完全错过了什么吗?

4

1 回答 1

5

似乎您正在混淆格式和响应类型。如果要将原始消息作为 Message.raw 中的字符串,则需要设置:

getReq.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw;

如果您想要返回解析的消息(在“有效负载”字段中),那么您可以像您一样使用 Full 的 getReq.Format 。

可接受的值为:

  • “full”:在有效负载字段中返回解析的电子邮件内容,不使用原始字段。(默认)

  • “minimal”:仅返回电子邮件元数据,例如标识符和标签,不返回电子邮件标头、正文或有效负载。

  • “raw”:将原始字段中的整个电子邮件内容作为字符串返回,并且不使用有效负载字段。这包括标识符、标签、元数据、MIME 结构和小正文部分(通常小于 2KB)。

来自:https ://developers.google.com/gmail/api/v1/reference/users/messages/get

于 2014-06-27T05:41:49.210 回答