我的目标是获取消息参数(from, to, body, subject等)并创建一个. email文件。
我目前正在使用EWS管理的API(尽管我对其他建议持开放态度)来创建EmailMessage对象。我希望创建一个. email文件,而不是将消息保存到邮箱或发送它(这是不可能的,因为我使用的应用程序帐户由于安全策略而无法访问任何邮箱)。
我改编了一些我从另一个答案中找到的代码,看起来很有希望:
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()上得到一个异常,说"这个操作不能执行,因为这个服务对象没有Id。"通过一些调试,我基本上看到了这个消息。Id为空。Id没有setter。我认为这是因为消息在保存到文件夹之前不会获得ID,而我不能这样做。
有办法解决这个问题吗?
谢谢
EmailMessage类没有MIME解析器/写入器。MimeContent由服务器创建。解决方法是创建自己的解析器来解析EmailMessage对象上设置的属性。如果不保存到服务器,为什么要使用EmailMessage类?