从C#中的messages.get获取更多数据

urb*_*ter 1 gmail-api

我收到的不仅仅是针对我尝试使用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;
    }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我调用message.Raw时,它返回null.我可以检索其他属性,格式=最小设置将基于我正在玩的API游乐场示例.

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

我在这里完全遗漏了什么吗?

Eri*_*c D 5

好像你在混合格式和响应类型.如果您希望将原始消息作为Message.raw中的字符串,则需要设置:

getReq.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw;
Run Code Online (Sandbox Code Playgroud)

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

可接受的值是:

  • "full":返回有效内容字段中已解析的电子邮件内容,并且不使用原始字段.(默认)

  • "minimal":仅返回标识符和标签等电子邮件元数据,不返回电子邮件标题,正文或有效内容.

  • "raw":以字符串形式返回原始字段中的整个电子邮件内容,并且不使用有效内容字段.这包括标识符,标签,元数据,MIME结构和小体部分(通常小于2KB).

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