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

时间:2014-06-27 00:58:41

标签: 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;
    }

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

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

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

1 个答案:

答案 0 :(得分: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