Я написал тестовое приложение на C#, которое создает черновик сообщения с помощью нового API Gmail. Он отлично работает, когда сообщение не имеет вложений.
Я отказываюсь от IMAP API и использую компоненты MailBee.NET с этим API. Компоненты MailBee.NET включают класс, который создает сообщение RFC 2822, поэтому я повторно использовал его, закодировал сообщение в формате Base64 и присвоил свойству «Raw», как описано здесь:
https://developers.google.com/gmail/api/guides/drafts
MailMessage msg = new MailMessage();
msg.Subject = "test!";
msg.BodyPlainText = "Test content";
msg.Attachments.Add(@"D:\Trace.log", "Trace.log", Guid.NewGuid().ToString(), null, null, NewAttachmentOptions.Inline, MailTransferEncoding.Base64);
Message m = new Message();
m.Raw = Convert.ToBase64String(msg.GetMessageRawData());
Draft d = new Draft();
d.Message = m;
d = gs.Users.Drafts.Create(d, "me").Execute();
Он отлично работает, когда вложение не добавлено, но завершается ошибкой с ответом 500, когда оно добавляется:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "backendError",
"message": "Backend Error"
}
],
"code": 500,
"message": "Backend Error"
}
}
Может ли кто-нибудь привести пример того, как это сделать с помощью .NET API? Пример на странице API очень прост и не дает много полезной информации, а документация не очень хороша. Вероятно, было бы лучше использовать классы Message / MessagePart / MessagePartBody, включенные в .NET Client, однако я не могу найти каких-либо четких указаний или примеров по их использованию, поэтому не знаю, с чего начать.
Вопросы:
1) Может ли кто-нибудь предоставить пример кода создания черновика сообщения с вложением с использованием классов в .NET Client?
2) Можно ли прикрепить более одного файла? Вся документация относится к одному файлу, а руководство Multipart относится ровно к двум частям: метаданным и вложению.