ASP.NET 2.0 中发送电子邮件变得非常简单。发送电子邮件的类库主要在命名空间System.Net.Mail中,在这个命名空间中有两个核心类是:
· MailMessage:描述一个电子邮件消息;它拥有From,To,Subject,Body等属性;
· SmtpClient:把一个指定的MailMessage实例发送到一个指定的SMTP服务器。
发送电子邮件的一般步骤是:
1.创建一个MailMessage对象;
2.赋给它的From,To,Subject,Body等属性;
3.创建一个SmtpClient类实例;
4.指定关于使用该SMTP服务器的细节(如果它们没有在Web.config中指定);
5.经由SmtpClient对象的Send方法发送该MailMessage。
下面的代码演示了发送电子邮件的过程:
















上述方法是通过Code方式发送邮件的,而在Asp.Net 2.0中Framework考虑更多的是配置式,也就是通过config方式来进行应用程序的控制,减少程序参数硬编码,这个配置节属于<system.net>节下的。
首先在Web.config文件中增加如下配置节:










接下来是程序代码,你会发现配置方式较Code方式代码是多么简洁,而且避免了硬编码,Smtp信息是从配置文件中读取的。










相比Code方式,我们发现配置方式代码中省去了发件人邮箱,SMTP服务器和SMTP服务器认证的Credentials,代码变得相当简洁,更为重要的是这些信息可以在Web.config文件中配置,这就大大增加了程序的灵活性,这是推荐采用的方式。需要说明的一点,示例中的邮箱用户名和密码都是真实的,理论上运行该示例程序是可以正常发送邮件的,但发送邮件时程序会抛出异常“邮箱不可用。 服务器响应为: Óû§±»Ëø¶¨ ”,但如果Credentials认证信息换成我另一个126邮箱,却能正常发送邮件了,一直没能找到原因所在,将对SmtpClient发送邮件的稳定性做进一步的研究,也希望能得到大家的指导。
2013-01-22补充:
发送邮件出现”在邮件标头中找到无效的字符“异常,看下计算机名称是否含中文,这个貌似是微软的bug,解决方法是不要含中文。
参考资料:ASP.NET 2.0中发送电子邮件剖析之一,.Net 2.0 中的发送邮件实现小解。
源代码下载地址: 点击下载完整示例程序 (示例路径:/NetFromwork/SendMail.aspx)
参考资料:ASP.NET 2.0中发送电子邮件剖析之一,.Net 2.0 中的发送邮件实现小解。
源代码下载地址: 点击下载完整示例程序 (示例路径:/NetFromwork/SendMail.aspx)