发送电子邮件是许多需要用户注册的网站的通用功能通过正则表达式我们可以过滤掉不符合电子邮件格式的输入但是仍没有办法确保用户填写的电子邮件地址一定是他本人真实有效的电子邮件地址通常验证电子邮件真实有效的办法是当用户填写的注册资料经过网站初步格式验证之后用户并不能利用此帐号登录系统会向用户注册时填写的电子邮件地址发送一封电子邮件邮件中给出一个链接只有当用户点击了这个链接之后才能登录到网站如果用户填写的电子邮件地址不是真实有效的或者不是他本人的就不会收到这封电子邮件这样仍然不能登录这一步一般称之为电子邮件激活
在net类库中有两种发送电子邮件的方式一种是在net以下版本中的做法一种是net以上版本的做法下面分别介绍这两种办法
一net及net中的做法(利用CDOSYS消息组件发送电子邮件)
代码如下
using System;
using SystemWebMail;
/// <summary>
/// 说明在net以下版本中发送电子邮件的方法示例
/// 用到的类主要位于SystemWebMail命名空间下
/// 作者周公
/// 日期
/// 首发地址http://blogcsdnnet/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();
mailTo = to;//设置收件人地址
mailFrom = from;//设置发件人地址
mailSubject = subject;//设置邮件主题
mailBodyFormat = MailFormatHtml;//设置邮件以HTML格式发送
mailBody = body;//设置邮件内容
//设置发送邮件时需要身份验证
mailFieldsAdd(http://schemasmicrosoftcom/cdo/configuration/smtpauthenticate );
//设置登录邮件主机时的用户名注意如果发件人地址是abc@defcom则用户名是abc而不是abc@defcom
mailFieldsAdd(http://schemasmicrosoftcom/cdo/configuration/sendusername userName);
//设置登录SMTP主机的用户密码
mailFieldsAdd(http://schemasmicrosoftcom/cdo/configuration/sendpassword password);
//设置发送邮件的SMTP主机
SmtpMailSmtpServer = smtpHost;
//发送邮件如果发送不成功会抛出异常
SmtpMailSend(mail);
}
}
上面的方法底层用到了CDOSYS组件用到的类主要是SystemWebMailSmtpServer和SystemWebMailMailMessage这种方法已经被微软不赞成使用了取而代之的是net中的新增的类和方法
[] []