Message.Payload 对于所有消息始终为空。我如何获得这些数据?
Message.Payload is always null for all messages. How do I get this data?
它正在返回正确数量的消息,但唯一填充的字段是 Id 和 ThreadId。其他一切都是空的
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
ListMessagesResponse response = service.Users.Messages.List(emailAddress).Execute();
IList<Google.Apis.Gmail.v1.Data.Message> messages = response.Messages;
Console.WriteLine("Messages:");
if (messages != null && messages.Count > 0)
{
foreach (var message in messages)
{
Console.WriteLine("{0}", message.Payload.Body);
Console.WriteLine();
}
}
else
{
Console.WriteLine("No Messages found.");
}
Messages.List() 仅 returns 消息和线程 ID。要检索消息内容,您需要为您感兴趣的每条消息调用 Get()。foreach
循环示例的更新版本:
foreach (var message in messages)
{
Message m = service.Users.Messages.Get("me", message.Id).Execute();
// m.Payload is populated now.
foreach (var part in m.Payload.Parts)
{
byte[] data = Convert.FromBase64String(part.Body.Data);
string decodedString = Encoding.UTF8.GetString(data);
Console.WriteLine(decodedString);
}
}
注意:您可能需要 运行 字符串替换 part.Body.Data 字符串。有关说明,请参阅 this post。
它正在返回正确数量的消息,但唯一填充的字段是 Id 和 ThreadId。其他一切都是空的
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
ListMessagesResponse response = service.Users.Messages.List(emailAddress).Execute();
IList<Google.Apis.Gmail.v1.Data.Message> messages = response.Messages;
Console.WriteLine("Messages:");
if (messages != null && messages.Count > 0)
{
foreach (var message in messages)
{
Console.WriteLine("{0}", message.Payload.Body);
Console.WriteLine();
}
}
else
{
Console.WriteLine("No Messages found.");
}
Messages.List() 仅 returns 消息和线程 ID。要检索消息内容,您需要为您感兴趣的每条消息调用 Get()。foreach
循环示例的更新版本:
foreach (var message in messages)
{
Message m = service.Users.Messages.Get("me", message.Id).Execute();
// m.Payload is populated now.
foreach (var part in m.Payload.Parts)
{
byte[] data = Convert.FromBase64String(part.Body.Data);
string decodedString = Encoding.UTF8.GetString(data);
Console.WriteLine(decodedString);
}
}
注意:您可能需要 运行 字符串替换 part.Body.Data 字符串。有关说明,请参阅 this post。