asp.net中模拟测试smtp发邮件
最近在编程人生里要测试一个会员邮件的功能,就写了下面的代码。
在asp.net 中,有时要测试发信SMTP,但如果在单元测试中,如果没方便好用的
smtp怎么办,其实还是有办法模拟的,下面讲解下:
在web.config 中设置
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory"> <specifiedPickupDirectory pickupDirectoryLocation="C:\Mail\"/> </smtp>
</mailSettings>
</system.net>
这样设置的话,将指定c:\mail为指定的收件箱的目录了,
代码可以编写如下:
protected void btnMail_Click(object sender, EventArgs e){ MailMessage message = new MailMessage("abc@somedomain.com","abc@abcdefgh.com",Newsletter", "This is a test mail");
SmtpClient client = new SmtpClient("localhost");
client.Send(message);}
}
这样的话,会发现运行后,在c:\mail下会有SMTP格式的你发的信了.
这个测试方法其实是很有用的,因为有时要涉及到用SMTP的一些信息交换平台的报文,
用这个测试方法就很好,可以清楚看到报文头和报文主体的内容呢