Моя цель — взять параметры сообщения (от, кому, тело, тема и т. д.) и создать файл .eml.
В настоящее время я использую управляемый API EWS (хотя я открыт для других предложений) для создания объекта EmailMessage. Вместо того, чтобы сохранять сообщение в почтовый ящик или отправлять его (это невозможно, поскольку учетная запись приложения, которую я использую, не имеет доступа к каким-либо почтовым ящикам из-за политик безопасности), я хочу создать файл .eml.
Я адаптировал некоторый код, который нашел из другого ответа, который выглядел многообещающе:
EmailMessage message = new EmailMessage(service);
//message initialization code
//...
using (FileStream fs = File.Open(@"message.eml", FileMode.Create, FileAccess.Write))
{
message.Load(new PropertySet(ItemSchema.MimeContent));
var mc = message.MimeContent;
fs.Write(mc.Content, 0, mc.Content.Length);
}
Но я получаю исключение в message.Load(), говорящее: «Эта операция не может быть выполнена, потому что у этого объекта службы нет идентификатора». Через небольшую отладку я в основном вижу, что message.Id равен нулю. У id нет сеттера. Я считаю, что это связано с тем, что сообщение не получает идентификатор, пока оно не будет сохранено в папке, чего я не могу сделать.
Есть ли способ обойти это?
Спасибо