如何测试asp.net电子邮件正在发送

我的asp.net中有一些代码发送了一封电子邮件:

public void SendEmail(string message) { var body = message; var email = new MailMessage(ConfigurationManager.AppSettings["SenderEmail"], ConfigurationManager.AppSettings["RecipientEmail"], "Email Test", body); var client = new SmtpClient(); client.Host = Properties.Settings.Default.smtp; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Credentials = CredentialCache.DefaultNetworkCredentials; client.Send(email); } 

我想知道如何测试这个。 无论是unit testing还是集成测试,我真的不在乎。 我不想嘲笑这个。 我实际上想要编写一个测试,发送一封包含正确消息的电子邮件。

谁能帮我这个?

只需在c:/驱动器上创建一个名为“maildrop”的文件夹,并在Web.config文件中使用以下命令:

      

更多信息:

http://weblogs.asp.net/gunnarpeipman/archive/2010/05/27/asp-net-using-pickup-directory-for-outgoing-e-mails.aspx

发送电子邮件给自己,看看你是否收到了它?

如果你不知道如何做到这一点,你可能想回到基础。

你不能把它放在一个模块中并从测试中调用它并设置收件人说你是电子邮件地址。 如果你收到电子邮件,我会说它正在运作。

要设置自动化测试,您需要在可以查询的服务器上拥有测试电子邮件地址(因为主题是asp.net,我们将假设交换服务器),然后在邮箱中查询您正在寻找的电子邮件:

选择1:交换sdk

opt 2:通过Web请求(如果启用了Exchange服务器的http连接器)

opt 3:编写自己的简单pop3客户端/ cli / api

ref for opt 3: http : //www.codeproject.com/KB/IP/popapp.aspx

有一种非常简单的方法可以在批准测试中测试生成的电子邮件。 您需要将方法分为两种方法,一种是创建电子邮件,另一种是发送电子邮件。 然后你可以打电话。

 EmailApprovals.Verify(mail) 

这里有一段video显示了这个过程: http : //www.youtube.com/watch?v = SF16dPq2n3w

您可以使用SMTP4Dev

http://smtp4dev.codeplex.com/

只需安装它(它是在您的任务栏中运行的一个小程序)。 开发程序结束时无需配置…

默认情况下,我认为它只会在您的本地主机上侦听时修改代码。

当您发送电子邮件时,您将获得一个很好的任务栏弹出通知…只需单击通知即可查看电子邮件的实际内容!