C# 如何测试正在发送的asp.net电子邮件
我的asp.net中有一些发送电子邮件的代码:C# 如何测试正在发送的asp.net电子邮件,c#,asp.net,unit-testing,C#,Asp.net,Unit Testing,我的asp.net中有一些发送电子邮件的代码: public void SendEmail(string message) { var body = message; var email = new MailMessage(ConfigurationManager.AppSettings["SenderEmail"], ConfigurationManager.AppSettings["RecipientEmail"],
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);
}
我想知道如何测试这个。无论是单元测试还是集成测试,我都不在乎。我不想嘲笑这件事。我其实想写一个测试,一封电子邮件是否发送了正确的消息
有人能帮我吗?你不能把它放在一个模块中,通过测试调用它,并设置收件人说你是电子邮件地址吗。如果你收到电子邮件,我会说它正在工作。给自己发一封电子邮件,看看你是否收到了它
如果您不知道如何执行此操作,您可能希望回到基本操作。要设置自动测试,您需要在您可以查询的服务器上有一个测试电子邮件地址(因为主题是asp.net,我们假定为exchange server),然后在邮箱中查询您正在使用的电子邮件: 选项1:ExchangeSDK 选项2:通过web请求(如果已启用exchange服务器的http连接器 选项3:编写自己的简单pop3客户端/cli/api
参考选项3:只需在c:/drive上创建一个名为“maildrop”的文件夹,并在Web.config文件中使用以下内容:
<mailSettings>
<smtp deliveryMethod='SpecifiedPickupDirectory'>
<specifiedPickupDirectory pickupDirectoryLocation="c:\maildrop" />
</smtp>
</mailSettings>
更多信息:
有一种非常简单的方法可以在approvaltests中测试生成的电子邮件。 您需要将该方法分为两个方法,一个用于创建电子邮件,一个用于发送电子邮件。然后您可以调用
EmailApprovals.Verify(mail)
这里有一段视频显示了这个过程:您可以使用SMTP4Dev
只需安装它(这是一个运行在任务栏中的小程序)。
您的开发程序端不需要任何配置
默认情况下,我认为它只会在未修改代码的情况下在本地主机上侦听代码
当你发送电子邮件时,你会收到一个很好的任务栏弹出通知…只需单击通知查看电子邮件的实际内容!+1这有一个明显的优点,即你不需要在发布应用程序和测试应用程序之间使用不同的代码。我知道这是一篇旧文章,但有人尝试过与Selen一起使用它吗ium/SeleniumWebDriver?我必须添加一个虚拟的“from”标记才能工作,否则它将引发一个异常,表明我缺少from字段。有关更多详细信息,请参阅。