将电子邮件拖放到指定的文件夹中,而不是通过SMTP服务器c#发送它们

时间:2013-11-19 14:33:10

标签: c# email smtp

我正在阅读此链接http://sampathloku.blogspot.in/2010/12/how-to-check-email-functionality.html中有关如何在不使用SMTP服务器的情况下检查电子邮件功能的文章,我发现该电子邮件未发送而是保存在本地文件夹中。所以我想知道为什么有人想在本地pc文件夹中保存邮件而不是发送它。

任何人都可以解释当人们将邮件保存在文件夹中时的正确情况,并告诉我如何在以后发送保存的邮件。感谢

2 个答案:

答案 0 :(得分:2)

用于测试目的。 更新:请参阅@Christian Specht对其他用法的回答。

想象一下,您想“自动生成”一封电子邮件。将它保存到磁盘比实际发送,接收等更容易。这样您就可以从硬盘驱动器中打开它来检查内容。甚至更好;对它进行单元测试。

答案 1 :(得分:1)

它不仅仅用于测试 我们在生产中使用它有两个原因:性能和可用性。

如果您有Exchange服务器,以后可以很容易地发送这些已保存的邮件by just copying the .eml files to a certain directory on the Exchange server

你为什么要这样做?
因为默认方式(使用<a href="#bottom">Click to go to bottom</a> <div class="spacer"></div> Bottom of the page <a id="bottom"></a>类将邮件直接发送到SMTP服务器)有两个缺点:

  • 您的应用必须为每个邮件建立与SMTP服务器的连接(这需要时间)
  • 如果SMTP服务器处于脱机状态,则无法正常工作

我们执行拥有Exchange服务器,因此我们通过让我们的应用程序服务器将它们保存为本地目录中的SmtpClient文件来发送邮件。
(幸运的是,我们有一个中心&#34;发送邮件&#34;方法,而不是直接在大量的地方使用.eml,所以我们只需要改变这一方法中的几行以确保所有邮件转到本地目录)

就我们的应用程序服务器而言,这一切都是如此 对于我们的应用服务器,&#34;发送&#34;邮件现在更快,因为它只是一个本地写。另外,如果Exchange服务器处于脱机状态,它的工作方式也相同。

那么,SmtpClient文件保存在app server的本地目录后会发生什么?

我们有一个(单独的)简单的C#应用​​程序,它通过Windows任务计划程序每分钟运行一次,并执行以下操作:

  • 检查Exchange服务器的拾取目录是否存在且可写
  • 如果是,请将所有.eml文件从本地目录移至Exchange提取目录