C#中发送邮件(以ASP.NET为例)
2011-10-20 22:59
411 查看
本文旨在介绍一种简单的发送邮件的方法:
发送邮件需要三步走:
一、配置web.config中的邮件服务属性
二、在程序中动态读取配置的服务信息
三、编写实现发送邮件的代码
打开web.config在configuration节点中加入以下代码(此处是以163邮箱为例),host为邮箱服务器的地址,port为25(都是这一个),userName为发送邮件的账号,
password为账号的密码。
然后在代码中读取web.config配置的信息,都知道可以在其他的类库通过ConfigurationManager进行访问web.config,可以这个东西在web是无效的,还好有
System.Web.Configuration.WebConfigurationManager。
通过OpenWebConfiguration("web.config的虚拟路径")(有些童鞋会发现在win7这句代码会出错,报错是不能找到 /目录,那是因为vs没有使用管理员登陆,退出vs
右键vs使用管理员打开即可),这个方法返回一个类型为Configuration 的对象,使用该对象可以进行访问web.config中的节点信息.
public sealed class NetSectionGroup : ConfigurationSectionGroup,这个类提供了以程序方式访问存储在配置文件里的信息。
这个类和网络设置文档里的system.net元素(网络设置)相对应;
GetSectionGroup从指定的配置文件获取system.net的配置;
WebConfigurationManager.OpenWebConfiguration打开应用程序根目录下的web.config生成System.Configuration.Configuration对象实例 ;
此处的ConfigurationAddress为在web中得到的Configuration对象.
一个简单的发送邮件就完成了。
发送邮件需要三步走:
一、配置web.config中的邮件服务属性
二、在程序中动态读取配置的服务信息
三、编写实现发送邮件的代码
打开web.config在configuration节点中加入以下代码(此处是以163邮箱为例),host为邮箱服务器的地址,port为25(都是这一个),userName为发送邮件的账号,
password为账号的密码。
<system.net> <mailSettings> <smtp> <network host="smtp.163.com" port="25" userName="wangyafei_it@163.com" password="xxxx"/> </smtp> </mailSettings> </system.net>
然后在代码中读取web.config配置的信息,都知道可以在其他的类库通过ConfigurationManager进行访问web.config,可以这个东西在web是无效的,还好有
System.Web.Configuration.WebConfigurationManager。
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/web.config");
通过OpenWebConfiguration("web.config的虚拟路径")(有些童鞋会发现在win7这句代码会出错,报错是不能找到 /目录,那是因为vs没有使用管理员登陆,退出vs
右键vs使用管理员打开即可),这个方法返回一个类型为Configuration 的对象,使用该对象可以进行访问web.config中的节点信息.
public sealed class NetSectionGroup : ConfigurationSectionGroup,这个类提供了以程序方式访问存储在配置文件里的信息。
这个类和网络设置文档里的system.net元素(网络设置)相对应;
GetSectionGroup从指定的配置文件获取system.net的配置;
WebConfigurationManager.OpenWebConfiguration打开应用程序根目录下的web.config生成System.Configuration.Configuration对象实例 ;
此处的ConfigurationAddress为在web中得到的Configuration对象.
Configuration ConfigurationAddress=System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/web.config");
//SmtpSection表示 System.Net 配置文件中的 SMTP 节。
System.Net.Configuration.SmtpSection cfg =
System.Net.Configuration.NetSectionGroup.GetSectionGroup(ConfigurationAddress).MailSettings.Smtp; //MailMessage 类的实例用于构造可使用 SmtpClient 类传输到 //SMTP 服务器以便传递的电子邮件。 MailMessage msg = new MailMessage(); msg.From = new MailAddress(FromAddress); //发件人 msg.To.Add(ToAddress); //收件人 msg.Subject = SubJect; //主题 msg.Body = Content; //邮件正文 msg.IsBodyHtml = true; msg.BodyEncoding = System.Text.Encoding.UTF8;//正文编码 //SmtpClient 类用于将电子邮件发送到 SMTP 服务器以便传递 //Attachment, MailAddress ,MailMessage SmtpClient smtp = new SmtpClient(cfg.Network.Host); //指定 SmtpClient 是否使用安全套接字层 (SSL) 加密连接。 smtp.UseDefaultCredentials = false; smtp.EnableSsl = false; smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
//为基于密码的身份验证方案(如基本、简要、NTLM 和 Kerberos 身份验证)提供凭据 NetworkCredential Credential = new NetworkCredential(); Credential.UserName = cfg.Network.UserName;//得到smtp节点配置的UserName Credential.Password = cfg.Network.Password;//得到smtp节点配置的Password smtp.Credentials = Credential; smtp.Send(msg);//调用Send发送邮件,参数为MailMessage 对象
一个简单的发送邮件就完成了。
相关文章推荐
- ASP.NET C# 邮件发送全解
- C# 发送邮件整理,包括控制台程序、WPF、WebForm 及 ASP.NET MVC
- asp.net(C#)定时自动发送邮件
- ASP.NET+C#使用JMail发送邮件
- 用C#(ASP.Net)在Exchange Server环境下发送邮件
- asp.net c# 定时发送邮件
- vs.net2005中使用利用cdo.message发送邮件(以asp.net/c#为例)
- asp.net/c# 发送邮件
- C#asp.net&nbsp;发送邮件
- asp.net C# 发送 邮件 和 附件 代码
- 用C#(ASP.Net)在Exchange Server环境下发送邮件
- win2008 64位系统 C#实现发送邮件(ASP.NET)
- asp.net/c# 发送邮件
- C#、ASP.NET、WinForm - 实现邮件发送的功能
- asp.net C# 发送 邮件 和 附件 代码
- 新手教学--ASP.NET简单邮件发送(C#)
- asp.net(C#)定时自动发送邮件
- 用C#(ASP.Net)在Exchange Server环境下发送邮件
- ASP.NET C# 邮件发送全解
- 学习记录 用C#.net 加 asp.net发送带附件邮件