zoukankan      html  css  js  c++  java
  • 解析eml文件

    之前使用lumisoft解析eml,总是会出现很奇怪的问题,所以改使用微软自家的com库,确实厉害兼容性更好,代码

                string file = emailPath;
                    CDO.Message oMsg = new CDO.Message();
                    ADODB.Stream stm = null;
                    //读取EML文件到CDO.MESSAGE,做分析的话,实际是用了下面的部分
    
                    try
                    {
                        stm = new ADODB.Stream();
                        stm.Open(System.Reflection.Missing.Value,
                        ADODB.ConnectModeEnum.adModeUnknown,
                        ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified,
                        "", "");
                        stm.Type = ADODB.StreamTypeEnum.adTypeBinary;//二进制方式读入
    
                        stm.LoadFromFile(file); //将EML读入数据流
    
                        oMsg.DataSource.OpenObject(stm, "_stream"); //将EML数据流载入到CDO.Message,要做解析的话,后面就可以了。
                        CDO.IBodyParts ip = oMsg.Attachments;
                        int count = oMsg.Attachments.Count;
                        if (count != 0)
                        {
                            for (int i = 1; i <= count; i++)
                            {
    
                                ////获取到附件的文件名称+后缀
                                object FileName = oMsg.Attachments[i].FileName;
                                //object fileContext=oMsg.Attachments[i].GetStream();
                                //内容
                                oMsg.Attachments[i].SaveToFile(@"C:" + FileName);
                                //ip.GetEnumerator().Current;
                            }
                            MessageBox.Show("下载完成,保存到:C:\根目录");
                        }
                        else
                        {
                            MessageBox.Show("没有附件");
                        }
    
    
                    }
                    catch (IOException ex)
                    {
    
                    }
                    finally
                    {
                        stm.Close();
                     }

    上面是解析附件的一段代码,正文、主题等更简单了

  • 相关阅读:
    Kali 查看系统信息的一些命令及查看已安装软件包的命令
    mysql_对于DQL 的简单举例
    java简单分析LinkedList
    java_简单解析ArrayList_iterable
    java_随机密码
    rsync 服务基础配置讲解
    DNS服务器的基础
    NFS服务器配置
    DHCP服务器配置
    VSFTP 配置详解,附带例子
  • 原文地址:https://www.cnblogs.com/rainbowzc/p/3285944.html
Copyright © 2011-2022 走看看