.net类库中发送电子邮件的方法

发送电子邮件是许多需要用户注册的网站的通用功能,通过正则表达式我们可以过滤掉不符合电子邮件格式的输入,但是仍没有办法确保用户填写的电子邮件地址一定是他本人真实有效的电子邮件地址,通常验证电子邮件真实有效的办法是:当用户填写的注册资料经过网站初步格式验证之后,用户并不能利用此帐号登录,系统会向用户注册时填写的电子邮件地址发送一封电子邮件,邮件中给出一个链接,只有当用户点击了这个链接之后才能登录到网站,如果用户填写的电子邮件地址不是真实有效的或者不是他本人的,就不会收到这封电子邮件,这样仍然不能登录,这一步一般称之为电子邮件激活。

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

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

代码如下:

using System;
using System.Web.Mail;
/// <summary>
/// 说明:在.net2.0以下版本中发送电子邮件的方法示例
/// 用到的类主要位于System.Web.Mail命名空间下
/// 作者:周公
/// 日期:2008-08-08
/// 首发地址:http://blog.csdn.net/zhoufoxcn
/// </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中的新增的类和方法。

时间: 2024-12-28 10:11:58

.net类库中发送电子邮件的方法的相关文章

Asp.Net类库中发送电子邮件的代码_实用技巧

通常验证电子邮件真实有效的办法是:当用户填写的注册资料经过网站初步格式验证之后,用户并不能利用此帐号登录,系统会向用户注册时填写的电子邮件地址发送一封电子邮件,邮件中给出一个链接,只有当用户点击了这个链接之后才能登录到网站,如果用户填写的电子邮件地址不是真实有效的或者不是他本人的,就不会收到这封电子邮件,这样仍然不能登录,这一步一般称之为电子邮件激活. 在.net类库中有两种发送电子邮件的方式,一种是在.net2.0以下版本中的做法,一种是.net2.0以上版本的做法.下面分别介绍这两种办法.

ASP.NET 2.0中发送电子邮件剖析之一

asp.net 一.简介 如今,电子邮件已经成为一种无所不在.异步通知和分布式的消息系统.存在许多web开发场所:其中,服务器端代码都需要生成一个电子邮件并且把它发送给指定的接收者.该电子邮件可以被发送给网点中的一些用户,通知他们有关于他们的新建用户帐户,提醒他们忘记的口令,或以邮件形式提交给他们一个清单.当然,这也可以是针对web开发者或站点管理员,提供给他们有关一个刚刚公开的未处理的异常或用户回馈的消息. 幸好,ASP.NET使得发送电子邮件非常轻松..NET框架版本1.x在System.W

如何使用 Cdosys.dll 库使用 Visual C# 中发送电子邮件带有附件接收邮件

 如何使用 Cdosys.dll 库一封新邮件中嵌入一条消息,使用 Visual C# 本文描述如何在新邮件中嵌入邮件的 Windows 2000 库 (Cdosys.dll) 中使用 Microsoft 协作数据对象 (CDO). 可以使用 Microsoft Visual C# 执行此操作. 请注意 Cdosys.dll 库也称为是 CDOSYS. 若要用于新邮件中嵌入邮件 CDOSYS 请按照下列步骤操作:    1. 启动 Microsoft Visual Studio.NET 或 Mi

在ASP.NET中发送电子邮件的实例教程

首先.导入命名空间:  代码如下 复制代码 using System.Net.Mail; 定义发送电子邮件的方法[网上很多不同的,可以对比着看一下,WinForm的也适用]:  代码如下 复制代码 /// <summary> /// 发送电子邮件 /// </summary> /// <param name="MessageFrom">发件人邮箱地址</param> /// <param name="MessageTo&q

IE8/IE9浏览器中发送“电子邮件页面”选项为灰色怎么办

通常出现这样的问题,是因为电脑中安装的电子邮件程序未设定为默认电子邮件程序,因为找不到默认的邮件程序,所以IE中发送"电子邮件页面"选项为灰色不可选状态.   首先请按一下[开始]按钮,然后按一下[默认程序]:     然后请按一下[设置程序访问和计算机默认值]:     然后按一下[自定义],展开选项:     然后请选取您所使用的电子邮件,完成之后按一下[确定]:     现在就可以正常使用[发送电子邮件页面]的功能了.   上面的操作适用于Windows 7系统中的IE8/IE9

golang实现通过smtp发送电子邮件的方法_Golang

本文实例讲述了golang实现通过smtp发送电子邮件的方法.分享给大家供大家参考,具体如下: 今天写了一个公司的邮件发送后台服务,php只需要把邮件存入数据库,然后golang写的mailservice就会吧邮件发送出去.这个公司的代码就不发出来的,以为带有公司的业务逻辑,我把代码整理了一下发布出来供大家参考.呵呵 复制代码 代码如下: package main import (     "fmt"     "net/mail"     "net/smt

PHP mail() 函数用于从脚本中发送电子邮件

PHP 允许您从脚本直接发送电子邮件. PHP mail() 函数 PHP mail() 函数用于从脚本中发送电子邮件. 语法 mail(to,subject,message,headers,parameters) 参数 描述 to 必需.规定 email 接收者. subject 必需.规定 email 的主题.注释:该参数不能包含任何新行字符. message 必需.定义要发送的消息.应使用 LF (n) 来分隔各行. headers 可选.规定附加的标题,比如 From.Cc 以及 Bcc

用Visual C#发送电子邮件

Visual C#是微软公司推出的下一代程序开发语言.他不仅具有Visual C++功能强大的特点,又具有Visual Basic的简洁,易上手的特点.所以一经推出,就收到了广大程序开发人员的欢迎.Visual C#和Visual C++的一个明显的区别在于,Visual C#本身是没有类库的,而Visual C++却是自身就带有类库.Visual C#虽然没有类库,但作为.Net框架中的一个十分重要的开发语言.他可以使用.Net框架提供的一个通用的软件开发包--.Net FrameWork S

ASP.NET 2.0发送电子邮件全面剖析之二

asp.net 一.简介 在上篇中我们详细分析过,.NET框架2.0版本提供了一个新的命名空间(System.Net.Mail)和一些发送电子邮件的新类(注意:.NET框架1.x版本中提供的命名空间System.Web.Mail及相关的类仍然可以使用,以实现向后兼容性).而且,我们还详细分析过如何使用System.Net.Mail命名空间中的MailMessage和SmtpClient类来发送简单的普通文本格式的电子邮件消息. 本篇将讨论与电子邮件相关的更高级的选项.我们要分析如何发送HTML格