世俱杯 2025

MailMessage保存为eml文件(C#+SmtpClient)

原创|其它|编辑:郝浩|2009-05-19 14:03:02.000|阅读 1023 次

概述:SmtpClient 和 MailMessag 已经实现了这个功能,实际上。只是这个功能是 NonPubl 对于空间外,不可见而已。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

好了完结了祝大家好运吧!

大大提升了 Mail.SmtpClient 功能,.NET 自从 2.0 开始。对于发邮件,可谓游刃有余了但是美中不足的没有提供保管邮件内容为 eml 文件的功能

 SmtpClient 和 MailMessag 已经实现了这个功能,实际上。只是这个功能是 NonPubl 对于空间外,不可见而已。

 利用 Reflector 反编译一下 System.Net.Mail.SmtpCli 可以看到

MAIL 被发送之前, Send MailMessag 方法中。调用了一个 MailWrit fileMailWrit = this.GetFileMailWrit this.PickupDirectoryLoc ;

继续定位 GetFileMailWriter 这个方法 顺藤摸瓜。

赫然醒目的显示着 .eml 看了里面的逻辑,上面的代码中。其实就清楚了 SmtpClient.Send 之前,也是先生成了一个临时的 eml 文件,然后再发送这个文件进来的

FileMode.CreateNew 这里。 其中的关键就在 new MailWriter new FileStream str2.

接下来定位到核心 MailWriter :

看不到这时我就需要用到 反射 Reflection 从上面可以看到 MailWrit 一个 intern class 所以我普通的调用 Mail.SmtpClient 等的命名空间下。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@dpuzeg.cn

文章转载自:博客园

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP