C#解析eml文件
2015-11-02 17:05
1021 查看
using System.Net; using System.Net.Mail; using System.Net.Mime; using System.Threading; // 读取邮件内容 private void ReadEML(string emailPath) { 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,要做解析的话,后面就可以了。 //邮件的内容 this.txtEmailContext.Text=oMsg.TextBody; MsgBody = oMsg.TextBody; //发件人 this.lblFrom.Text = oMsg.From; MsgFrom = oMsg.From; //收件人 this.lblTo.Text = oMsg.To; MsgTo = oMsg.To; //标题 this.lblTitle.Text = oMsg.Subject; MsgSubject = oMsg.Subject; //时间 this.lblTime.Text = oMsg.ReceivedTime.ToString(); this.lblCount.Text = oMsg.Attachments.Count.ToString(); CDO.IBodyParts ip = oMsg.Attachments; int count = oMsg.Attachments.Count; for (int i = 1; i <= count; i++) { ////获取到附件的文件名称+后缀 object FileName = oMsg.Attachments[i].FileName; //object fileContext=oMsg.Attachments[i].GetStream(); //将附件存储到指定位置 oMsg.Attachments[i].SaveToFile(@"F:\" + FileName); //ip.GetEnumerator().Current; } } catch (IOException ex) { } finally { stm.Close(); } }
相关文章推荐
- C#语法基础
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术02--继承
- 6.C#的循环语句
- Web安全之C#语法学习
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术01--接口
- 【C#】构造函数和析构函数
- c#基础4
- VS2010、C#、Emgu CV配置 ; 在C#下使用OpenCV ; C#中使用OpenCV(Emgu CV)
- C#+AE 用MapControl加载栅格格式文件
- C# 计算时间差 用timespan函数
- C# 5.0 与 .Net 4.5 学习(四)SpinLock自旋锁&WaitHandle
- C#进阶系列——动态Lamada
- C#语法之比较
- c#MD5珍藏
- (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义03--静态和实例类成员
- (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义03--对象的生命周期--构造函数和析构函数
- C# KeepAlive的设置
- (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义02--一切皆对象
- (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义01--对象的含义02--方法
- [C#]光标(cur/ani)转图片(Image)