gpt4 book ai didi

c# - EWS 读取邮件纯文本正文获取 ServiceObjectPropertyException

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:41 24 4
gpt4 key购买 nike

我在下面的代码中完成了以下操作,但仍然收到 ServiceObjectPropertyException。我显然正在按照建议加载属性 here too .请任何人帮助指出我做错了什么

this.ExchangeService = new ExchangeService(ExchangeVersion.Exchange2013);

this.ExchangeService.Credentials = new WebCredentials(mailBox, password);
this.ExchangeService.Url = new Uri("https://mail.xxxxxxxxxxx.com/EWS/Exchange.asmx");

PropertySet itemProperty = new PropertySet();
itemProperty.RequestedBodyType = BodyType.Text;


SearchFilter searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));

ItemView view = new ItemView(999);
view.PropertySet = itemProperty;

List<ExchangeMailResponse> emails = new List<ExchangeMailResponse>();

FindItemsResults<Item> emailMessage = this.ExchangeService.FindItems(WellKnownFolderName.Inbox, searchFilter, view);


foreach (Item mail in emailMessage)
{

ExchangeMailResponse email = new ExchangeMailResponse();


mail.Load(itemProperty);

email.Message = mail.Body.Text;


}

最佳答案

使用您尝试使用的属性集,因为您没有使用 BasepropertySet 重载并且您没有添加任何属性,您唯一告诉交换返回 IdOnly。因此,在基本层面上,您至少需要添加 Body 属性,例如

itemProperty.Add(ItemSchema.Body);

但是您将无法在 FindItems 操作中使用该属性集,因此我建议您更改代码,例如

        SearchFilter searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));

PropertySet FindItemPropertySet = new PropertySet(BasePropertySet.IdOnly);

ItemView view = new ItemView(999);
view.PropertySet = FindItemPropertySet;
PropertySet GetItemsPropertySet = new PropertySet(BasePropertySet.FirstClassProperties);
GetItemsPropertySet.RequestedBodyType = BodyType.Text;


FindItemsResults<Item> emailMessages = null;
do
{
emailMessages = service.FindItems(WellKnownFolderName.Inbox, searchFilter, view);
if (emailMessages.Items.Count > 0)
{
service.LoadPropertiesForItems(emailMessages.Items, GetItemsPropertySet);
foreach (Item Item in emailMessages.Items)
{
Console.WriteLine(Item.Body.Text);
}
}
} while (emailMessages.MoreAvailable);

干杯格伦

关于c# - EWS 读取邮件纯文本正文获取 ServiceObjectPropertyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36069801/

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