Exchange server Exchange 2010,了解电子邮件是否为会议邀请而未加载附件

Exchange server Exchange 2010,了解电子邮件是否为会议邀请而未加载附件,exchange-server,exchangewebservices,exchange-server-2010,Exchange Server,Exchangewebservices,Exchange Server 2010,我在ExchangeServer2010的收件箱中运行了一个邮件嗅探器程序,可以每隔一定时间检查电子邮件。我想知道是否可以通过编程方式检查电子邮件(EmailMessage)是否为会议邀请(日历请求),而无需加载附件 我知道我可以检查附件是否为Microsoft.Exchange.WebServices.Data.ItemAttachment,然后在加载电子邮件后检查附件是否为Microsoft.Exchange.WebServices.Data.Appointment。但这仅检查附件是否为邀请

我在ExchangeServer2010的收件箱中运行了一个邮件嗅探器程序,可以每隔一定时间检查电子邮件。我想知道是否可以通过编程方式检查电子邮件(EmailMessage)是否为会议邀请(日历请求),而无需加载附件

我知道我可以检查附件是否为
Microsoft.Exchange.WebServices.Data.ItemAttachment
,然后在加载电子邮件后检查附件是否为
Microsoft.Exchange.WebServices.Data.Appointment
。但这仅检查附件是否为邀请。理论上,有人可以转发一封电子邮件,其中包括一封电子邮件邀请。那么这封电子邮件实际上不是一封会议邀请,只是一封转发的电子邮件

你能知道一封电子邮件是否是一封没有加载附件的会议邀请吗?如果EWS不能做到这一点,是否有权威来源

编辑:转发的电子邮件

这不在问题范围之内,但我最初问:

或者(但不是我所希望的),有办法知道吗 是否转发了一封电子邮件,以便我能够以不同的方式处理它们

这已经得到了回答。但我仍然希望得到我的问题的答案,因为这个答案只会帮助为某些情况创建一个解决方案

提前谢谢

您可以利用消息类属性来创建。这里有一个片段可以帮助你

FindItemsResults-mailItems=inbox.FindItems(新项目视图(1000){PropertySet=new PropertySet(ItemSchema.Id,ItemSchema.HasAttachments,ItemSchema.Subject,ItemSchema.ItemClass)});
foreach(messageItems中的EmailMessage消息)
{    
if(message.ItemClass==“IPM.Schedule.Meeting.Request”)
//我们有一个会议要求
}
您可以利用消息类属性来创建。这里有一个片段可以帮助你

FindItemsResults-mailItems=inbox.FindItems(新项目视图(1000){PropertySet=new PropertySet(ItemSchema.Id,ItemSchema.HasAttachments,ItemSchema.Subject,ItemSchema.ItemClass)});
foreach(messageItems中的EmailMessage消息)
{    
if(message.ItemClass==“IPM.Schedule.Meeting.Request”)
//我们有一个会议要求
}

这是正确的。非常感谢。以防其他人在测试过程中犯与我相同的错误;在调试此文件时,我使用了一封包含会议请求的电子邮件作为附件,而不是正确的会议请求。当我得到这个答案后,我做了一次现实检查,立即可以看到
ItemClass
属性上的
IPM.Schedule.Meeting.Request
值。这是正确的。非常感谢。以防其他人在测试过程中犯与我相同的错误;在调试此文件时,我使用了一封包含会议请求的电子邮件作为附件,而不是正确的会议请求。当我得到这个答案后,我做了一次现实检查,立即可以看到
ItemClass
属性上的
IPM.Schedule.Meeting.Request
值。