ASP.NET 2.0中发送电子邮件
文章来自http://www.cnblogs.com/freshman0216/archive/2008/06/05/1213984.html
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。
下面的代码演示了发送电子邮件的过程:

1 string mailServerName = "smtp.126.com"; //发送邮件的SMTP服务器 2 string mailFrom = "sender0624@126.com"; //发件人邮箱(用126的邮件服务器,就必须用126邮箱的用户名) 3 string mailTo = "supremezone@126.com"; //收件人邮箱 4 string subject = "用代码方式发送邮件";//邮件主题 5 string body = "这里是邮件正文了"; //邮件正文 6 7 using (MailMessage message = new MailMessage(mailFrom, mailTo, subject, body)) 8 { 9 //SmtpClient是发送邮件的主体,这个构造函数是告知SmtpClient发送邮件时使用哪个SMTP服务器 10 SmtpClient mailClient = new SmtpClient(mailServerName); 11 //将认证实例赋予mailClient,也就是访问SMTP服务器的用户名和密码 12 mailClient.Credentials = new NetworkCredential("sender0624", "111111"); 13 //最终的发送方法 14 mailClient.Send(message); 15 }
上述方法是通过Code方式发送邮件的,而在Asp.Net 2.0中Framework考虑更多的是配置式,也就是通过config方式来进行应用程序的控制,减少程序参数硬编码,这个配置节属于<system.net>节下的。
首先在Web.config文件中增加如下配置节:

1 <system.net> 2 <!--如果是第三方smtp服务器,需要指定userName 和 password,并根据host指定发件人邮件地址from 3 测试发现from值必须是userName值加上指定的smpt服务器才行,而且是必须指定的 4 如果是本机smtp服务器,只需指定defaultCredentials="true"即可--> 5 <mailSettings> 6 <smtp deliveryMethod="Network" from ="sender0624@126.com" > 7 <network host="smtp.126.com" port="25" userName="sender0624" password="111111/> 8 </smtp> 9 </mailSettings> 10 </system.net>
接下来是程序代码,你会发现配置方式较Code方式代码是多么简洁,而且避免了硬编码,Smtp信息是从配置文件中读取的。

1 using (MailMessage message = new MailMessage()) 2 { 3 message.To.Add(new MailAddress("supremezone@126.com")); //收件人邮箱 4 message.Subject = "通过配置文件设置发送邮件";//邮件主题 5 message.Body = "这里是邮件正文了"; //邮件正文 6 7 SmtpClient mailClient = new SmtpClient(); 8 mailClient.Send(message); 9 }
相关文章:
http://www.cnblogs.com/pcmax/archive/2007/08/06/845430.html
http://www.cnblogs.com/xxz0618/archive/2006/11/09/555378.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App