阅读C#中的电子邮件表单数据

时间:2016-03-21 05:12:09

标签: c# exchange-server

我已创建一个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的字段。

提前致谢。

1 个答案:

答案 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

干杯 格伦