【问题标题】:Using CreateItemFromTemplate to process an olEmbeddeditem Outlook attachment使用 CreateItemFromTemplate 处理 olEmbeddeditem Outlook 附件
【发布时间】:2008-09-17 12:01:15
【问题描述】:

我正在使用 C# 处理 Outlook 收件箱中包含附件的邮件。其中一个附件属于 olEmbeddeditem 类型。我需要能够处理该附件的内容。据我所知,我需要将附件保存到磁盘并使用 CreateItemFromTemplate 来返回一个对象。

我遇到的问题是 olEmbeddeditem 可以是任何 Outlook 对象类型 MailItem、ContactItem、MeetingItem 等。您如何知道特定 olEmbeddeditem 附件将是哪种对象类型,以便您知道将要使用的对象由 CreateItemFromTemplate 返回?

或者,如果有更好的方法将 olEmbeddeditem 附件内容放入对象中进行处理,我也会对此持开放态度。

【问题讨论】:

    标签: c# .net outlook attachment


    【解决方案1】:

    我在 Google Groups 上找到了以下代码,用于确定 Outlook 对象的类型:

    Type t = SomeOutlookObject.GetType();
    string messageClass = t.InvokeMember("MessageClass",
      BindingFlags.Public | 
      BindingFlags.GetField | 
      BindingFlags.GetProperty,
      null,
      SomeOutlookObject,
      new object[]{}).ToString();
    Console.WriteLine("\tType: " + messageClass);
    

    我不知道这对 olEmbedded 项目是否有帮助,但它似乎可以识别常规消息、日历项目等。

    【讨论】:

      【解决方案2】:

      使用同样是电子邮件的电子邮件附件,这些附件又包含我想要访问的用户定义的属性,然后我执行以下步骤:

      Outlook.Application mailApplication = new Outlook.Application();
      Outlook.NameSpace mailNameSpace = mailApplication.GetNamespace(“mapi”);
      // make sure it is an embedded item
      If(myAttachment.Type == Outlook.OlAttachmentType.olEmbeddeditem)
      {
          myAttachment.Type.SaveAsFile(“temp.msg”);
          Outlook.MailItem attachedEmail = (Outlook.MailItem)mailNameSpace.OpenSharedItem(“temp.msg”);
          String customProperty = attachedEmail.PropertyAccessor.GetProperty(
              “http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-c000-000000000046}/myProp
      }
      

      如果您使用打开 MailItem,那么我将无法访问上述属性:

      Outlook.MailItem attachedEmail = (Outlook.MailItem)mailApplication.CreateFromTemplate(“temp.msg”);  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-28
        • 2022-01-17
        • 1970-01-01
        相关资源
        最近更新 更多