通过配置web.config发电子邮件详解

原文地址:http://www.aspstat.com/84
这篇文章主要讲叙了,如何通过配置文件(web.config)实现邮件发送的相关配置,以及如何根据配置发送电子邮件。

适用的框架:asp.net framework 2.0/.net framework3.0/.net framework3.5

在web.config里设置.net framework的网络连接

 

XML/HTML代码
<system.net>    
</system.net>  
如下:设置stmp邮件发送的配置

 

XML/HTML代码
//父元素:configuration(提供所有名称空间的配置)   
<system.net>  
    //这里还可以加入如下元素的设置   
    //authenticationModules:设置用来验证WEB请求的模块   
    //connectionManagement:设置WEB服务器最大连接数   
    //defaultProxy:设置http的代理服务器   
    //mailSettings:配置smtp   
    //requestCaching:控制网络请求缓存机制   
    //settings:为System.NET配置基本网络选项   
    //<webRequestModules>元素(网络设置):指定模块从WEB服务器请求信息。   
    <mailSettings>  
      //deliveryMethod设置邮件发送方式,这里是网络形式   
      <smtp deliveryMethod="Network" from="xxx@yyy.com" >  
        //host邮件发送服务器   
         //userName发送邮件时,用来进行身份验证的用户名   
         //password如下验证时的密码   
        <network host="smtp.yyy.com" userName="xxx@yyy.com" password="zzzzzzz" />  
      </smtp>         
    </mailSettings>  
</system.net>  
 

以编程的方式获取web.config里的smtp配置

NetSectionGroup类

命名空间
System.Net.Configuration:为应用程序提供了以编程方式访问和更新配置文件System.Net命名空间下的设置的类。
程序集
System

定义:
public sealed class NetSectionGroup : ConfigurationSectionGroup

说明:
这个类提供了以程序方式访问存储在配置文件里的信息。
这个类和网络设置文档里的system.net元素(网络设置)相对应。
这部分的为下列名称空间提供配置设置:
System.Net
System.Net.Cache
System.Net.Mail

在程序里读取configuration/system.net/mailSettings/stmp配置

 

C#代码
//NetSectionGroup在上面已经介绍过了   
//GetSectionGroup从指定的配置文件获取system.net的配置   
//WebConfigurationManager.OpenWebConfiguration   
//打开应用程序根目录下的web.config生成System.Configuration.Configuration对象实例   
SmtpSection cfg = NetSectionGroup.GetSectionGroup(WebConfigurationManager.OpenWebConfiguration("~/web.config")).MailSettings.Smtp;  
 

发送电子邮件

C#代码
try{   
   //实例化一个邮件消息对象    
   MailMessage email = new MailMessage(cfg.From, mailto);   
   email.IsBodyHtml = true;   
   email.Body = "要发送的邮件内容,上面已经设置可以支持html内容,例外还可以通过指定email.BodyEncoding属性设置邮件内容的编码";   
   email.Subject = "邮件主题,通过指定email.SubjectEncoding属性设置邮件主题的编码";   
   //实例化smtp客服端对象,用来发送电子邮件   
   System.Net.Mail.SmtpClient stmp = new SmtpClient(cfg.Network.Host);   
   //设置是否需要发送是否需要身份验证,如果不需要下面的credentials是不需要的   
   stmp.UseDefaultCredentials = true;      
   stmp.Credentials = new System.Net.NetworkCredential(cfg.Network.UserName, cfg.Network.Password);   
   //发送邮件   
   stmp.Send(email);   
}   
catch (Exception ex)   
{ //  }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值