首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从保存为*.msg文件的outlook联系人或通讯组列表中提取信息

从保存为*.msg文件的outlook联系人或通讯组列表中提取信息
EN

Stack Overflow用户
提问于 2016-02-04 16:11:30
回答 4查看 679关注 0票数 0

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

  • 我试过使用Aspose的电子邮件库,但无法获得联系详细信息。
  • 如果我用Outlook打开.msg文件,并将该文件保存为.txt文件,则生成的文件是一个简单的文本文件,其中列出了联系人信息,该文件可以与IO库一起解析并提取信息。然而,我有超过100个这样的.msg文件。我正在使用.NET,不知道如何实现“另存为”文本,这是我能够手动完成的。

对如何解决这个问题有什么建议吗?

谢谢

苏雷什

EN

回答 4

Stack Overflow用户

发布于 2019-11-20 04:11:34

使用Apose.Email API,我们可以提取联系人电子邮件信息。你可以在你的头上试试这个,我累了,能够提取出这些信息

代码语言:javascript
复制
        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();
                }
            }
票数 1
EN

Stack Overflow用户

发布于 2016-02-05 18:43:01

代码语言:javascript
复制
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);
            }
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2016-02-10 07:55:29

我们很抱歉这么晚才来找你。

您在使用Aspose时面临的实际问题是什么?该API提供读取Outlook联系人.MSG文件和分发列表的功能,而不需要安装MS。请看下列文献文章:

  • 使用展望联系人

如果在使用API的最新版本检索所需信息时仍然面临问题,可以将查询连同样例MSG文件一起发布到Aspose.Email论坛。我们将在最后对这些问题进行调查,并进一步协助您。

我和Aspose一起工作,做开发人员的传道人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35205979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档