我的目标是获取消息参数(从、到、正文、主题等)并创建一个 .eml 文件。
我目前正在使用 EWS 托管 API(尽管我愿意接受其他建议)来创建一个 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() 上收到一个异常,说“无法执行此操作,因为此服务对象没有 Id。” 通过一点调试,我基本上看到 message.Id 为空。Id 没有设置器。我相信这是因为消息在保存到文件夹之前不会获得 ID,而我无法做到这一点。
有没有办法解决这个问题?
谢谢