最近想搞个网站,其中找回密码用到了我们常见到的利用邮箱找回。利用邮箱的好处是可以有效确认修改密码者的身份。
百度了几篇博客,各有千秋。最终采用了QI Fei同志的博客,有Demo下载,看了看思路清晰,然后还利用到了逆天提供邮箱。感谢两位。
参考博客: QI Fei Blog---- (主要看下载的Demo)
毒逆天 Blog--- (主要看提供的账号)
接下来说下发送邮件的大概思路:1.首先提到的是SMTP服务器,官方称之为“简单的文件传输协议”,说白了就是指定你发送文件是什么服务器,如果使用的QQ则写smtp.qq.net,使用的163则写smtp.163.com
2.再就是指定发送人的邮箱的名称和密码 3.指定接受者的邮箱 4.发送即可
-----------------综合上面的博客,,我做了个获取验证码的功能。 输入邮箱发送验证码,然后后台返回验证码,将验证码显示在下面的输入框内,如图所示:
这里我利用的MVC写的~
前台Code
<div> 请输入您的邮箱:<input type=http://www.mamicode.com/"text" id=http://www.mamicode.com/"email" /> <input type=http://www.mamicode.com/"button" value=http://www.mamicode.com/"获取验证码" id=http://www.mamicode.com/"getYZM" /><br/> 请输入验证码:<input type=http://www.mamicode.com/"text" id=http://www.mamicode.com/"yzm"/> </div> <script src=http://www.mamicode.com/"~/Scripts/jquery-1.8.2.min.js"></script> <script> $("#getYZM").click(function () { var emailName = $("#email").val().trim(); $.post(‘@Url.Action("SendYanZhengMa","Home")‘, { recEmail: emailName }, function (_data) { if (_data==http://www.mamicode.com/"no") { alert("发送失败!"); } else { $("#yzm").val(_data); } }) }); </script>
View Code后台Code
public ActionResult Index() { return View(); } [HttpPost] public ActionResult SendYanZhengMa(string recEmail) { string result = "no"; try { //确定smtp服务器地址。实例化一个Smtp客户端 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp.yeah.net"); //生成一个发送地址 string strFrom = "techblog@yeah.net"; //构造一个发件人地址对象 MailAddress from = new MailAddress(strFrom, "RYJ", Encoding.UTF8);//发送地址,发送人的名字 //构造一个收件人地址对象 MailAddress to = new MailAddress("2636922684@qq.com", "一明", Encoding.UTF8);//收件地址,收件人的名字 //构造一个Email的Message对象 MailMessage message = new MailMessage(from, to); //添加邮件主题和内容 message.Subject = "YM互动登陆验证消息"; message.SubjectEncoding =http://www.mamicode.com/ Encoding.UTF8; Random r=http://www.mamicode.com/new Random(); int n= r.Next(100000,999999); message.Body = "您的验证码是:"+n; message.BodyEncoding =http://www.mamicode.com/ Encoding.UTF8; //设置邮件的信息 client.DeliveryMethod =http://www.mamicode.com/ SmtpDeliveryMethod.Network; message.BodyEncoding =http://www.mamicode.com/ System.Text.Encoding.UTF8; message.IsBodyHtml = false; //如果服务器支持安全连接,则将安全连接设为true。 //gmail支持,163不支持,如果是gmail则一定要将其设为true client.EnableSsl = true; //设置用户名和密码。 //string userState = message.Subject; client.UseDefaultCredentials = false; string username = "techblog";//发送邮件的用户名 string passwd = "2436chao";//密码 //用户登陆信息 NetworkCredential myCredentials = new NetworkCredential(username, passwd); client.Credentials =http://www.mamicode.com/ myCredentials; //发送邮件 client.Send(message); //提示发送成功 result =http://www.mamicode.com/ n.ToString(); } catch (Exception ex) { result = "no"; } return Content(result); }