【问题标题】:Accessing Message Content from Gmail API从 Gmail API 访问邮件内容
【发布时间】:2015-07-22 08:58:25
【问题描述】:

我无法使用 gmail API 让消息内容显示出来。我已经连接到邮箱,并且正在生成一个消息列表,但是除了 ID 之外,与消息关联的所有值都是空的。

生成消息列表的代码摘自gmail API网站上的示例代码:

public static List<Message> ListMessages(GmailService service, String userId, String query)
    {
        List<Message> result = new List<Message>();
        UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List(userId);
        request.Q = query;
        do
        {
            try
            {
                ListMessagesResponse response = request.Execute();
                result.AddRange(response.Messages);
                request.PageToken = response.NextPageToken;
            }
            catch (Exception e)
            {
                Console.WriteLine("An error occurred: " + e.Message);
            }
        } while (!String.IsNullOrEmpty(request.PageToken)); 
        return result;
    }

打印消息的代码是:

List<Message> messages = ListMessages(service, "me", ""); 
        Console.WriteLine("Messages from user's inbox:");
        foreach(Message m in messages)
        {
            string snippet = m.Snippet;
            Console.WriteLine("Message: {0}", snippet);
        }

但再一次,当我在打印行放置断点并检查消息列表时,与消息内容关联的所有值都为空。

【问题讨论】:

  • 赞成,因为问题中的代码帮助我解决了我的问题。 :)

标签: c# .net gmail-api


【解决方案1】:

我想通了;我会留下它,因为它不是很明显。必须在 foreach 循环中添加一条 get 语句,以使用列表中的 Id 显式“获取”消息。

foreach(Message m in messages)
        {
            Message m2 = service.Users.Messages.Get("me", m.Id).Execute();
            Console.WriteLine("Message: {0}", m2.Snippet);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-27
    • 2012-03-05
    • 2019-11-04
    • 2019-09-25
    • 1970-01-01
    • 2020-10-02
    • 2021-02-04
    • 2012-12-31
    相关资源
    最近更新 更多