Я пытаюсь получить вложения с помощью Gmail API на C # Web API. Мне удалось извлечь вложенные файлы, но не удалось извлечь вложенные вложения в электронном письме (изображения).
Код для вытягивания вложений
foreach (Message msg in messages)
{
if (msg.Payload != null && msg.Payload.Parts != null)
{
Console.WriteLine("History IDs " + msg.HistoryId);
IList<MessagePart> parts = msg.Payload.Parts;
foreach (MessagePart part in parts)
{
if (!String.IsNullOrEmpty(part.Filename))
{
Console.WriteLine(part.Body.AttachmentId);
String attId = part.Body.AttachmentId;
try
{
MessagePartBody attachPart = service.Users.Messages.Attachments.Get(userId, msg.Id, attId).Execute();
// Converting from RFC 4648 base64 to base64url encoding
// see http://en.wikipedia.org/wiki/Base64#Implementations_and_history
String attachData = attachPart.Data.Replace('-', '+');
attachData = attachData.Replace('_', '/');
byte[] data = Convert.FromBase64String(attachData);
File.WriteAllBytes(Path.Combine(AppSettings.GetDocsRootDirectory(), part.Filename), data);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
} else
{
}
}
}
}
Кроме того, есть ли способ пакетного вложения, как мы можем запросить сообщения?