ASP.NET实现邮箱发送验证码
发布时间:2022-11-23 12:57:17 所属栏目:Asp教程 来源:
导读: *ASP.NET实现邮箱发送验证码
一:先在前台添加一个button按钮,用来点击发送验证码
二:封装一个类实现邮箱发送验证码
public class Email
{
///
/// 发送者
一:先在前台添加一个button按钮,用来点击发送验证码
二:封装一个类实现邮箱发送验证码
public class Email
{
///
/// 发送者
|
*ASP.NET实现邮箱发送验证码 一:先在前台添加一个button按钮,用来点击发送验证码 二:封装一个类实现邮箱发送验证码 public class Email { /// /// 发送者 /// public string mailFrom { get; set; } /// /// 收件人 /// public string[] mailToArray { get; set; } /// /// 抄送 /// public string[] mailCcArray { get; set; } /// /// 标题 /// public string mailSubject { get; set; } /// /// 正文 /// public string mailBody { get; set; } /// /// 发件人密码 /// public string mailPwd { get; set; } /// /// SMTP邮件服务器 /// public string host { get; set; } /// /// 正文是否是html格式 /// public bool isbodyHtml { get; set; } /// /// 附件 /// public string[] attachmentsPath { get; set; } public bool Send() { //使用指定的邮件地址初始化MailAddress实例 MailAddress maddr = new MailAddress(mailFrom); //初始化MailMessage实例 MailMessage myMail = new MailMessage(); //向收件人地址集合添加邮件地址 if (mailToArray != null) { for (int i = 0; i < mailToArray.Length; i++) { myMail.To.Add(mailToArray[i].ToString()); } } //向抄送收件人地址集合添加邮件地址 if (mailCcArray != null) { for (int i = 0; i < mailCcArray.Length; i++) { myMail.CC.Add(mailCcArray[i].ToString()); } } //发件人地址 myMail.From = maddr; //电子邮件的标题 myMail.Subject = mailSubject; //电子邮件的主题内容使用的编码 myMail.SubjectEncoding = Encoding.UTF8; //电子邮件正文 myMail.Body = mailBody; //电子邮件正文的编码 myMail.BodyEncoding = Encoding.Default; myMail.Priority = MailPriority.High; myMail.IsBodyHtml = isbodyHtml; //在有附件的情况下添加附件 try { if (attachmentsPath != null && attachmentsPath.Length > 0) { Attachment attachFile = null; foreach (string path in attachmentsPath) { attachFile = new Attachment(path); myMail.Attachments.Add(attachFile); } } } catch (Exception err) { throw new Exception("在添加附件时有错误:" + err); } SmtpClient smtp = new SmtpClient(); //指定发件人的邮件地址和密码以验证发件人身份 smtp.Credentials = new System.Net.NetworkCredential(mailFrom, mailPwd); //设置SMTP邮件服务器 smtp.Host = host; try { //将邮件发送到SMTP邮件服务器 smtp.Send(myMail); return true; } catch (System.Net.Mail.SmtpException ex) { return false; } } } 三:还需要额外加载的类 Using System.Net.Mail; Using System.Net; 四:生成一个6位长度的验证码 public string CreateValidateCode(int length) { int[] randMembers = new int[length]; int[] validateNums = new int[length]; string validateNumberStr = “”; //生成起始序列值 int seekSeek = unchecked((int)DateTime.Now.Ticks); Random seekRand = new Random(seekSeek); int beginSeek = (int)seekRand.Next(0, Int32.MaxValue - length * 10000); int[] seeks = new int[length]; for (int i = 0; i < length; i++) { beginSeek += 10000; seeks[i] = beginSeek; } // 生成随机数字 for (int i = 0; i < length; i++) { Random rand = new Random(seeks[i]); int pownum = 1 * (int)Math.Pow(10, length); randMembers[i] = rand.Next(pownum, Int32.MaxValue); } //生成随机数字 for (int i = 0; i < length; i++) { string numStr = randMembers[i].ToString(); int numLength = numStr.Length; Random rand = new Random(); int numPosition = rand.Next(0, numLength - 1); validateNums[i] = Int32.Parse(numStr.Substring(numPosition, 1)); } // 生成验证码 for (int i = 0; i < length; i++) { validateNumberStr += validateNums[i].ToString(); } return validateNumberStr; } 五:使用qq邮箱的话需要开启一个服务 asp.net mvc 数据验证_asp验证码_asp服务器验证 六:邮箱验证码的获取 //验证码 邮箱获取 public string CodeEmail(string emailinfo) { //Response.Write(“”); //return View(“Register”); return YZCode(emailinfo); } public string YZCode(string LoginEmial) { string code = CreateValidateCode(6); YZMCode = code; Email email = new Email { host = “smtp.qq.com”, mailBody = code, mailFrom = “**********@qq.com”, mailPwd = “zlihferffrhdfjif”, mailSubject = “来自明日yi游的登录验证码!”, mailToArray = new string[] { LoginEmial } }; bool b = email.Send(); if (b == true) { return “验证码已发送 请查收!”; } else { return “您输入的账号有误请重新输入”; } } 完成以上步骤就可实现邮箱发送验证码的功能了。 (编辑:百客网 - 域百科网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐

