gpt4 book ai didi

c# - 创建 .eml 文件而不先将 EmailMessage 保存到邮箱

转载 作者:太空宇宙 更新时间:2023-11-03 13:26:06 29 4
gpt4 key购买 nike

我的目标是获取消息参数(发件人、收件人、正文、主题等)并创建一个 .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,而我不能这样做。

有什么办法可以解决这个问题吗?

谢谢

最佳答案

EmailMessage 类没有 MIME 解析器/编写器。 MimeContent 由服务器创建。解决方法是创建您自己的解析器来解析 EmailMessage 对象上设置的属性。如果不保存到服务器,为什么要使用 EmailMessage 类?

关于c# - 创建 .eml 文件而不先将 EmailMessage 保存到邮箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391761/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com