您好我正在编写一个应用程序,它将扩展属性添加到使用EWS发送的电子邮件中;当用户从Outlook回复时,存在扩展属性,我的应用程序可以读取该属性。
我的问题是当用户从移动设备回复电子邮件时,扩展属性不再存在。
以下是我用来添加属性的代码:
Exchange.EmailMessage email = new Exchange.EmailMessage(_ExchangeService);
email.ToRecipients.Add(txtEmailAddress.Text);
email.Subject = txtSubject.Text;
email.Body = txtBody.Text;
Guid MyPropertySetId = new Guid("{C11FF724-AA03-4555-9952-8FA248A11C3E}");
Exchange.ExtendedPropertyDefinition extendedPropertyDefinition = new Exchange.ExtendedPropertyDefinition(MyPropertySetId, "ValidationId", Exchange.MapiPropertyType.String);
email.SetExtendedProperty(extendedPropertyDefinition, "234");
email.SendAndSaveCopy();
以下是阅读该属性的代码:
Guid MyPropertySetId = new Guid("{C11FF724-AA03-4555-9952-8FA248A11C3E}");
Exchange.ExtendedPropertyDefinition extendedPropertyDefinition = new Exchange.ExtendedPropertyDefinition(MyPropertySetId, "ValidationId", Exchange.MapiPropertyType.String);
Exchange.ItemView view = new Exchange.ItemView(10);
Exchange.PropertySet properties = new Exchange.PropertySet(Exchange.BasePropertySet.IdOnly, Exchange.ItemSchema.Subject, extendedPropertyDefinition);
properties.RequestedBodyType = Exchange.BodyType.Text;
properties.BasePropertySet = BasePropertySet.FirstClassProperties;
foreach (Exchange.EmailMessage item in emails)
{
item.Load(properties);
if (item.IsRead)
{
continue;
}
if (item.ExtendedProperties.Count > 0)
{
foreach (Exchange.ExtendedProperty extendedProperty in item.ExtendedProperties)
{
if (extendedProperty.PropertyDefinition.Name == "ValidationId")
{
txtPropertyNameReceived.Text = extendedProperty.PropertyDefinition.Name;
txtPropertyValueReceived.Text = extendedProperty.Value.ToString();
}
else
{
continue;
}
}
item.Delete(Exchange.DeleteMode.HardDelete);
}
}
预计会出现这个问题吗?我的意思是,这是因为用户正在回复他的手机吗?或者代码中有什么问题吗?
如果问题是代码,我可以请求您帮助告诉我代码中缺少或错误的部分。
提前致谢。
答案 0 :(得分:0)
以下是为什么它不起作用的解释: