gpt4 book ai didi

c# - Exchange Web 服务 - 处理消息和访问附件

转载 作者:太空狗 更新时间:2023-10-29 20:03:52 24 4
gpt4 key购买 nike

我正在编写一个简单的控制台应用程序来监控特定的交换邮箱,当收到符合特定条件的电子邮件时,该应用程序将下载 XML 文件附件,并将电子邮件存档。

我已成功连接到 EWS,并且能够循环浏览任何电子邮件,但在创建可用于访问附件的 EmailMessage 对象时我遇到了困难。

在下面的示例代码中,EmailMessage message = EmailMessage.Bind(...) 行执行时没有错误,但没有返回有效消息,所以当我访问和属性或方法时,我收到错误消息:“对象引用未设置为对象的实例”。

我是 C# 的新手,更不用说 EWS 了,所以我不知道从哪里开始......

代码片段:

    public static void FindItems()
{
try
{
ItemView view = new ItemView(10);
view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
view.PropertySet = new PropertySet(
BasePropertySet.IdOnly,
ItemSchema.Subject,
ItemSchema.DateTimeReceived);

findResults = service.FindItems(
WellKnownFolderName.Inbox,
new SearchFilter.SearchFilterCollection(
LogicalOperator.Or,
new SearchFilter.ContainsSubstring(ItemSchema.Subject, "Sales Enquiry")),
view);

log2.LogInfo("Total number of items found: " + findResults.TotalCount.ToString());

foreach (Item item in findResults)
{
log2.LogInfo(item.Id);

EmailMessage message = EmailMessage.Bind(service, item.Id, new PropertySet(BasePropertySet.IdOnly, ItemSchema.Attachments));

Console.WriteLine(message.Subject.ToString());

if (message.HasAttachments && message.Attachments[0] is FileAttachment)
{
FileAttachment fileAttachment = message.Attachments[0] as FileAttachment;
fileAttachment.Load("C:\\temp\\" + fileAttachment.Name);
fileAttachment.Load();
Console.WriteLine("FileName: " + fileAttachment.FileName);
}
}
}
catch (Exception ex)
{
log2.LogError(ex.InnerException);
}
}

我访问附件的代码直接来自 MSDN所以我希望它就在那里……有什么想法吗?

最佳答案

恐怕我重新审视了这个问题并设法解决了它。不幸的是,当时我压力太大,无法回到这里记录解决方案。时间过去了,我对我所做更改的内存已经消失,但据我所知,这是一行更改:

EmailMessage message = EmailMessage.Bind(service, item.Id, new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Attachments));

这里的主要区别是我们指定了 BasePropertySet.FirstClassProperties 作为 PropertySet 的第一个参数,而不是我们原来的 BasePropertySet.IdOnly

我的原始代码是从一个在线示例中提取的,该示例完全符合我想要实现的目标,因此该示例不太正确,或者我转录不正确,或者误解了问题的某些方面。

关于c# - Exchange Web 服务 - 处理消息和访问附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3036832/

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