世俱杯 2025

C#将MailMessage保存为本地eml文件续(.Net+SmtpClient)

原创|其它|编辑:郝浩|2009-05-19 14:05:35.000|阅读 1562 次

概述:使用了反射 ( Reflect 方式,上一篇 MailMessag 保管为 eml 文件 ( C#+SmtpClient 中。调用 System.Net.Mail 内部对象 MailWrit 实现了将 MailMessag 内容保管为 eml 文件。

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

使用了反射 ( Reflect 方式,上一篇 MailMessag 保管为 eml 文件 ( C#+SmtpClient 中。调用 System.Net.Mail 内部对象 MailWrit 实现了将 MailMessag 内容保管为 eml 文件。

主要是学习反射 Reflect 使用思路,通过上次的实现。起到个抛砖引玉的作用吧,算是

偶尔看到上次的代码,今天。又重新发现了一个 新大陆 使得保管 eml 文件的工作,变得异常简单了 先回到上次解析的地方:

 

 

对于上面的这张图片,上次的时候。过分强调了 MailWrit 这里,而忽略了其他局部,下面我把上面这幅图,重现一下:

 MailMessag
eml

 

偏重于上面的画 蓝色 横线的地方,上次。这次,偏重于 画 红线 标数字 地方,大家可以看到上面的这个 switch 过程,对 SmtpClient.DeliveryMethod 进行的与 MailMessag 毫无关系。

都标记了 1 这两种情况下,而上面我画红圈的 2 个地方。会分别执行到标志 2 和 3 地方,而 2 和 3 确实殊途同归,都进入了 Label_025D 这里,下面是 Label_025D 内容:

SmtpClient

就是画红线的那句,上面的核心内容。而那句,其实又回到 MailMessage.Send

System.Net.Mail

 

 

System.Net.Mail.MailWrit

没有任何的网络交互,上面的红线框标注的只是 writer 进行了一些写入操作。而 writer 就是上次说的那个生成 EML 文件的 stream

其实问题就清了 .NET SmtpClient 对于 DeliveryMethod 为 SpecifiedPickupDirectory 和 PickupDirectoryFromIi 情况,说到这里。所做的只是 特定的目录下,生成一个 EML 文件,而已

需要 IIS 支持,对于 PickupDirectoryFromIi 情况。不是要的需要的 SpecifiedPickupDirectory 这个。对于这种情况再简单不过了实例代码如下:

 

根本不需要配置 smtp 服务器等等的很是方便;缺点是生成的 EML 文件名,上面的方式。一个 GUID 不能自己控制。


标签:

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

文章转载自:博客园

为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP