我已创建一个Outlook自定义表单,并将其发送到我的收件箱。
现在,在我的代码中,我有;
ExchangeService exchange = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
exchange.UseDefaultCredentials = true;
exchange.AutodiscoverUrl("firstname.lastname@companyname.com.au", RedirectionUrlValidationCallback);
TimeSpan ts = new TimeSpan(0, -1, 0, 0);
DateTime date = DateTime.Now.Add(ts);
SearchFilter.IsGreaterThanOrEqualTo filter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, date);
if (exchange != null)
{
Folder inbox = Folder.Bind(exchange, WellKnownFolderName.Inbox);
SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
ItemView view = new ItemView(1);
FindItemsResults<Item> findResults = exchange.FindItems(WellKnownFolderName.Inbox, sf, view);
foreach (Item item in findResults)
{
EmailMessage message = EmailMessage.Bind(exchange, item.Id);
string messageBody = message.Body;
我可以获取主题,正文等但是如何阅读自定义表单中的字段?
所以我有一个名为textbox1的字段。
提前致谢。
答案 0 :(得分:3)
您需要知道自定义表单在Outlook中创建的MAPI属性的详细信息。您可以使用MFCMapi或Outlook Spy等Mapi编辑器轻松找到它。一旦你知道GUID,标签信息你只需要定义它并告诉EWS将属性返回给你,例如很可能像
ExtendedPropertyDefinition CustomProperty = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "CustomPropertyName", MapiPropertyType.String);
PropertySet ItemPropSet = new PropertySet(BasePropertySet.FirstClassProperties);
ItemPropSet.Add(CustomProperty);
EmailMessage message = EmailMessage.Bind(exchange, item.Id,ItemPropSet);
另见https://msdn.microsoft.com/en-us/library/office/dd633697(v=exchg.80).aspx
干杯 格伦