昨天在写用户注册的时候,需要写用户填写用户邮件地址,但又得验证邮件地址的有效性,解决这种问题的方法就是根据用户注册的邮箱,有邮箱中发送一个注册码,然后根据注册码来完成下一步的注册。在网上搜索了一下方法,只有.net1.1的方法,在此基础上修改了一下。现在提供两种版本的示例
1).Net1.1
System.Web.Mail命名空间:
这个命名控件下包含了以下的对象和三个属性:
包含的对象:
MailAttachment:与邮件附件有关的对象类
MailMessage :邮件主体
SmtpMail :负责发送邮件的SMTP协议。
属性列表:
MailEncoding :邮件的编码(Base64,UUEncode)
MailFormat :邮件的格式(Html超文本格式,Text纯文本格式)
MailPriority :邮件优先级(High, Medium, Low)
构建MailMessage对象:
MailMessage对象是邮件的承载主体,通常可以先构建好MailMessage对象,然后设置它的属性的方式来构建邮件程序,下面列出了的是一些常用的属性:
Attachments :邮件附件
Bcc :暗送地址
Body :邮件主体
BodyFormat :邮件格式(html,text)
Cc :抄送地址
From :发信人地址
Priority :邮件优先级(High, Medium,Low)
Subject :邮件主题
To :接收人地址
UrlContentBase :在HTML格式邮件中的URL编码方式
UrlContentLocation:邮件信息的优先级(High, Medium,Low)
使用SMTPMail发送邮件
构建好MailMessage对象之后,还需要使用另外一个对象-SMTPMail-来发送邮件,SMTPMAIL有一个很重要的方法:Send,该方法有两个不同用法,其中一个可以仅仅发送整个的MailMessage对象:
SmtpMail.Send(myEmailObject);
另外一个允许你分别指定发送者,收邮件地址,邮件主题,邮件主题,然后再发送出去:
SmtpMail.Send(strFrom, strTo, strSubject, strBody);
示例:
void SendMail()
{
System.Web.Mail.MailMessage myEmail = new System.Web.Mail.MailMessage();
// SET MESSAGE PARAMETERS
myEmail.From = "[email protected]";
myEmail.To = "[email protected]";
myEmail.Subject = "咨询培训事宜";
myEmail.BodyFormat = System.Web.Mail.MailFormat.Html;
myEmail.Body = "学习.net,请问你们的实训课程都何时开课?.";
//SEND THE MESSAGE
System.Web.Mail.SmtpMail.Send(myEmail);
}
2).Net2.0
System.Net.Mail命名空间:
这个命名控件下包含了以下主要对象和主要属性:
包含的对象:
MailAddress:表示电子邮件发件人或收件人的地址
Attachment :表示电子邮件的附件
MailAddressCollection :存储与电子邮件关联的电子邮件地址
MailMessage :表示可以使用 SmtpClient 类发送的电子邮件
SmtpClient :允许应用程序使用简单邮件传输协议 (SMTP) 来发送电子邮件。
属性列表:
DeliveryNotificationOptions:描述电子邮件的传送通知选项
MailPriority :指定 MailMessage 的优先级
SmtpAccess :指定允许的简单邮件传输协议 (SMTP) 服务器访问级别
SmtpDeliveryMethod:指定如何发送电子邮件
SmtpStatusCode:指定使用 SmtpClient 类发送电子邮件的结果
构建MailMessage对象:
MailMessage对象是邮件的承载主体,通常可以先构建好MailMessage对象,然后设置它的属性的方式来构建邮件程序,下面列出了的是一些常用的属性:
Attachments :邮件附件
Bcc :暗送地址
Body :邮件主体
Cc :抄送地址
From :发信人地址
Subject :邮件主题
To :接收人地址
使用SmtpClient发送邮件
构建好MailMessage对象之后,还需要使用另外一个对象-SmtpClient-来发送邮件,SmtpClient有一个很重要的方法:Send,可以发送整个的MailMessage对象:
SmtpClient.Send(MailMessage);
在这个例子中,使用System.Net.Mail命名空间
/// <summary>
/// 自动发送邮件
/// </summary>
/// <param name="strMail">邮件接受地址</param>
/// <param name="strRegistCode">注册码</param>
/// <returns></returns>
bool SendMail(string strMail, string strRegistCode)
{
string strHost = "mail.cdce.cn"; //STMP服务器地址
string strAccount = "jackguo"; //SMTP服务帐号
string strPwd = "111111"; //SMTP服务密码
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = strHost; ;//指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(strAccount, strPwd);//用户名和密码
string content = "你的验证码是:" + strRegistCode + ",请获取后立即完成注册,关联基本信息。";
content += "<br><br>该邮件为自动发送,请不要回复!";
MailAddress sender = new MailAddress("[email protected]", "统考信息");
MailAddress receriver = new MailAddress(strMail);
MailMessage mail = new MailMessage(sender, receriver);
MailAddressCollection ToMail = new MailAddressCollection();
mail.Subject = "统考信息系统验证码";//主题
mail.Body = content;//内容
mail.BodyEncoding = System.Text.Encoding.Default;//正文编码
mail.IsBodyHtml = true ;
mail.Priority = MailPriority.High;//优先级
try
{
_smtpClient.Send(mail);
return true;
}
catch (Exception e)
{
return false;
}
}
软件开发培训,项目实训,请到华海实训,一流经验,一流的项目实训师,软件工程师成长的摇篮。