MailMessage保存为eml文件(C#+SmtpClient)2010-11-14 zu14 .NET 自从2.0开始,大大提升了 Mail.SmtpClient 的功能,对于发邮件,可谓游刃有余了。但是,美中不足的是没有提供保存邮件内容为eml文件的功能

实际上,SmtpClient 和 MailMessage 已经实现了这个功能,只是这个功能是 NonPublic 的,对于空间外,不可见而已。利用 Reflector 反编译一下 System.Net.Mail.SmtpClient 可以看到:

在 Send(MailMessage) 方法中,在MAIL被发送之前,是调用了一个 MailWriter fileMailWriter=this.GetFileMailWriter(this.PickupDirectoryLocation);我们顺藤摸瓜,继续定位 GetFileMailWriter 这个方法