我有一个ASP.NET 2应用程序,它向特定用户发送电子邮件,以通知他们某些事件。该应用程序使用System.Net.Mail.SmtpClient
类构建电子邮件并发送它。
在开发和测试应用程序的同时,我想确保我们不会向生产电子邮件地址发送电子邮件。我想避免在应用程序代码中进行分支(例如,使用编译器指令和构建配置),因为这意味着在将应用程序部署到生产环境之前,不能测试所有代码路径。理想情况下,我想在开发中配置应用程序以使用开发SMTP服务器主机,该主机接收所有电子邮件并将其发送到特定地址,而不管它被指示发送到哪个地址。这可能是使用Windows XP / IIS 5吗?
在这种情况下可以采取哪些其他方法。
答案 0 :(得分:3)
一个aproach就像一个标记测试或其他东西,所以根据在web.config中配置的内容,你发送电子邮件来测试你分配的电子邮件。
但在我看来,这是一个黑客攻击,一个替代的,更推荐的解决方案是将 DeliveryMethod 设置为web.config中的 SmtpDeliveryMethod.SpecifiedPickupDirectory 并指定一个要保存邮件的目录,所以不要实际发送电子邮件,而是创建它并将其放在文件夹中以便查看。通过这种方式,您可以使用一个web.config进行测试,另一个用于 DeliveryMethod 设置为网络并具有所有生产smtp设置的生产。