首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>.NET2.0>详解在asp.net1和2中发送电子邮件的代码
详解在asp.net1和2中发送电子邮件的代码
来源: 发布时间:2008-11-03 发布人: 浏览: 人次   字体: [ ]  

在.net类库中有两种发送电子邮件的方式,一种是在.net2.0以下版本中的做法,一种是.net2.0以上版本的做法。下面分别介绍这两种办法。

一、.net1.0及.net1.1中的做法(利用CDOSYS消息组件发送电子邮件):

代码如下:

using System;
using System.Web.Mail;

/// <summary>
/// 说明:在.net2.0以下版本中发送电子邮件的方法示例
/// 用到的类主要位于System.Web.Mail命名空间下
/// </summary>
public class SendMail
{
    public SendMail()
    {         
    }
    /// <summary>
    /// 发送邮件
    /// </summary>
    /// <param name="to">收件人邮件地址</param>
    /// <param name="from">发件人邮件地址</param>
    /// <param name="subject">邮件主题</param>
    /// <param name="body">邮件内容</param>
    /// <param name="username">登录smtp主机时用到的用户名,注意是邮件地址'@'以前的部分</param>
    /// <param name="password">登录smtp主机时用到的用户密码</param>
    /// <param name="smtpHost">发送邮件用到的smtp主机</param>
    public void Send(string to, string from, string subject, string body, string username, string password, string smtpHost)
    {
        MailMessage mail = new MailMessage();
        mail.To = to;//设置收件人地址
        mail.From = from;//设置发件人地址
        mail.Subject = subject;//设置邮件主题
        mail.BodyFormat = MailFormat.Html;//设置邮件以HTML格式发送
        mail.Body = body;//设置邮件内容
        //设置发送邮件时需要身份验证
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
        //设置登录邮件主机时的用户名,注意如果发件人地址是abc@def.com,则用户名是abc而不是abc@def.com
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", userName);
        //设置登录SMTP主机的用户密码
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password);
        //设置发送邮件的SMTP主机
        SmtpMail.SmtpServer = smtpHost;
        //发送邮件,如果发送不成功会抛出异常
        SmtpMail.Send(mail);
    }
}
上面的方法底层用到了CDOSYS组件,用到的类主要是System.Web.Mail.SmtpServer和System.Web.Mail.MailMessage,这种方法已经被微软不赞成使用了,取而代之的是.net2.0中的新增的类和方法。

 二、.net2.0中的做法

代码:

using System;
using System.Net.Mail;
using System.Net;

/// <summary>
/// 说明:在.net2.0以上版本中发送电子邮件的方法示例
/// 用到的类主要位于System.Net.Mail和System.Net命名空间下
/// </summary>
public class SendMail2
{
    public SendMail2()
    {
    }

    /// <summary>
    /// 发送邮件
    /// </summary>
    /// <param name="to">收件人邮件地址</param>
    /// <param name="from">发件人邮件地址</param>
    /// <param name="subject">邮件主题</param>
    /// <param name="body">邮件内容</param>
    /// <param name="username">登录smtp主机时用到的用户名,注意是邮件地址'@'以前的部分</param>
    /// <param name="password">登录smtp主机时用到的用户密码</param>
    /// <param name="smtpHost">发送邮件用到的smtp主机</param>
    public void Send(string to, string from, string subject, string body, string userName, string password, string smtpHost)
    {
        MailAddress from = new MailAddress(from);
        MailAddress to = new MailAddress(to);
        MailMessage message = new MailMessage(from, to);
        message.Subject = subject;//设置邮件主题
        message.IsBodyHtml = true;//设置邮件正文为html格式
        message.Body = body;//设置邮件内容
        SmtpClient client = new SmtpClient(smtpHost);
        //设置发送邮件身份验证方式
        //注意如果发件人地址是abc@def.com,则用户名是abc而不是abc@def.com
        client.Credentials = new NetworkCredential(userName, password);
        client.Send(message);
    }
}

在上面的代码中,主要用到了在.net2.0中新增的两个类,分别是System.Net.Mail.MailMessage和System.Net.Mail.SmtpClient两个类,在SMTP身份验证方面用到了System.Net.NetworkCredential类。

需要注意的是:不管是在那种方式下,身份验证用到的帐号是网页登录是用到的帐号,如果你的邮箱地址是zhou@163.com,在登录mail.163.com邮箱的时候,输入的帐号是zhou而不是zhou@163.com,身份验证的时候也是如此。


相 关 文 章   发布商链接
·实例讲解asp.net备份和恢复sql数据库...
·实例讲解在.net2.0中对config文件的...
·如何让GridView控件支持分页的自动编...
·.net如何将ListViewItem转换为ListVi...
·如何在asp.net中获取GridView隐藏列...
·gridview控件嵌套gridview控件的方法...
·asp.net2.0调用CSS无效的主要原因及...
·在GridView控件中使用DataKeyNames属...
·ASP.NET2.0中控件的简单异步回调
·C#2.0纯数学方法递归实现货币数字转...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解在.net2.0中对config
·包含32种常见的用户输入验证...
·asp.net不使用服务器控件的情
·如何更改单个aspx页面的编码...
·实例讲解如何设置gridview的...
·asp.NET 2.0中引发CSS失效问...
·GridView通过模板列实现第一...
·VS2005利用TreeView控件和递...
·DataView对象获取数据行相应...
·GridView中固定列的两种方法
·为GridView控件添加分页导航...
·Net2.0中使用母版页及其母版...
·实例解决GridView中弹出对话...
·Gridview控件字段内容过长的...
·图解ASP.NET下AJAX安装(VS20...
热 门 文 章
·asp.net(C#)弹出窗口返回值并...
·VS2005利用Excel组件操作Exce...
·AJAX实现无刷新适时显示gridV...
·gridview表头固定并实现打印...
·Js获取radiobuttonlist选中值...
·gridview绑定数据显示的各种...
·ASP.NET中“无法加载 DLL 找...
·asp.net文件下载防止乱码出现...
·asp.net2.0回发或回调参数无...
·实现gridview内容打印功能的...
·ASP.NET多个用户控件回车提交...
·Asp.net页面传递参数的几种方...
·图解ASP.NET下AJAX安装(VS20...
·实例解决GridView中弹出对话...
·如何在asp.net中获取GridView...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .