zoukankan      html  css  js  c++  java
  • .net发送电子邮件

    这篇文章主要讲叙了,如何通过配置文件(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)   
    {   
    }  
     

    作者: XuGang   网名:钢钢
    出处: http://xugang.cnblogs.com
    声明: 本文版权归作者和博客园共有。转载时必须保留此段声明,且在文章页面明显位置给出原文连接地址!
  • 相关阅读:
    hibernate3.2多表关联查询常见问题
    Map 四种同步方式的性能比较
    架构师书单(2010版)
    强碱性食品 高嘌呤食物
    Linux内核crash/Oops异常定位分析方法
    linux驱动基础系列linux spi驱动框架分析
    vmware server 虚拟机与宿主机之间共享网络设置问题
    花生壳
    Groove 线上办公室
    coolit
  • 原文地址:https://www.cnblogs.com/xugang/p/881564.html
Copyright © 2011-2022 走看看