zoukankan      html  css  js  c++  java
  • C#中发送邮件(以ASP.NET为例)

    本文旨在介绍一种简单的发送邮件的方法:

    发送邮件需要三步走:

    一、配置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 对象



    一个简单的发送邮件就完成了。

  • 相关阅读:
    TCP三次握手原则
    IDEA快捷键总结
    长连接和短连接,单工、半双工和全双工
    Spring中神奇@aotuWrited
    有状态和无状态的对象区别
    GC--垃圾收集器
    SpringMVC工作原理
    java的对象锁和类锁
    oracle中的数据类型
    oracle中的函数
  • 原文地址:https://www.cnblogs.com/ListenFly/p/2219643.html
Copyright © 2011-2022 走看看