从作为* .msg文件提供的Outlook联系人组中提取联系人信息

时间:2016-02-04 16:11:30

标签: c# outlook aspose outlook-redemption msg

我正在尝试解决一个问题,即我将一些联系信息作为Outlook的 *。msg 文件提供。我想使用脚本解析这些文件以提取联系人电子邮件和名称。我尝试了几种解决方案:

  • 我尝试使用 Aspose的电子邮件库,但无法获取联系方式。
  • 如果我使用Outlook打开 .msg 文件并将文件另存为 .txt 文件,则生成的文件是一个简单的文本文件,其中列出了联系信息,这个文件我可以用IO库解析并提取出来的信息。但是我有超过一百个这样的.msg文件。我正在使用.NET,无法弄清楚如何实现我手动完成的“另存为”文本。

有关如何解决这个问题的任何建议吗?

由于

苏雷什

4 个答案:

答案 0 :(得分:0)

如果使用Redemption是一个选项,则以下内容应该有效:

currentDate >= data-display-after && currentDate <= data-display-after

答案 1 :(得分:0)

RDOSession session = RedemptionLoader.new_RDOSession();
session.Logon();
RDOFolder folder = session.GetDefaultFolder(rdoDefaultFolders.olFolderContacts);
Console.WriteLine("Extracting contacts...");

foreach (RDOFolder subFolder in folder.Folders)
{
    if (subFolder.Name == "CAS_Notifications")
    {
        foreach (var rdoItem in subFolder.Items)
        {
            RDOContactItem contactItem = rdoItem as RDOContactItem;
            RDODistListItem distList = rdoItem as RDODistListItem;
            if (distList != null)
            {
                Console.WriteLine("Distribution List");
                foreach (RDOAddressEntry rdoAddressEntry in distList.OneOffMembers)
                {
                    Console.WriteLine("Name: {0}; Email: {1}", rdoAddressEntry.Name, rdoAddressEntry.SMTPAddress);
                }
            }
            else if (contactItem != null)
            {
                Console.WriteLine("Name: {0}; Email: {1}", contactItem.FullName, contactItem.Email1Address);
            }
        }
    }
}

答案 2 :(得分:0)

我们很抱歉这件事迟到了。

使用Aspose API时遇到的实际问题是什么? API提供了读取Outlook Contact .MSG文件以及分发列表的功能,而无需安装MS Outlook。 请查看以下文档文章:

如果您在使用最新版本的API检索所需信息时仍遇到问题,可以将查询以及样本MSG文件发布到Aspose.Email forum。我们将在最后调查这些并进一步为您提供帮助。

我与Aspose一起担任开发人员传播者。

答案 3 :(得分:0)

使用Apose.Email API,我们可以提取联系人电子邮件信息。您可以尝试一下。我很累,并能够提取这些信息

        MapiMessage message = MapiMessage.FromFile(msgPath);
        MapiPropertyCollection properties = message.NamedProperties;

        foreach (KeyValuePair<long, MapiProperty> prop in properties)
        {
            if (((prop.Value).Descriptor).CanonicalName != null)
            {
                if (((prop.Value).Descriptor).CanonicalName == "PidLidEmail1DisplayName")
                {
                    string email1displayName = prop.Value.ToString();                     
                }
                if (((prop.Value).Descriptor).CanonicalName == "PidLidEmail1EmailAddress")
                {
                    string email1Address = prop.Value.ToString();
                }
                if (((prop.Value).Descriptor).CanonicalName == "PidLidInstantMessagingAddress")
                {
                    string ADD = prop.Value.ToString();
                }
            }