找回密码实现和邮件发送功能

一、找回密码实现和邮件发送功能

找回密码分析:

1. 接收用户输入的用户名邮箱,并且校验邮箱是否和用户名邮箱匹配

2. 构建相应的内容,发送至用户邮箱中,

2.1构建什么内容:系统产生一个新的密码,并且将新产生的新密码发送到用户的邮箱中。

3. 如果需要同时发送多条邮件,需要放在队列中。

二、邮箱发送信息功能实现:相关代码如下,需要引入:using System.Net.Mail;

       MailMessage mailMsg = new MailMessage();//两个类,别混了,要引入System.Net这个Assembly
            mailMsg.From = new MailAddress("wang_itcast@126.com", "王**");//源邮件地址 ,发件人的地址
            mailMsg.To.Add(new MailAddress("wangchengwei324@126.com", "王**"));//目的邮件地址。可以有多个收件人,收件人的地址
            mailMsg.Subject = "Hello,大家好!";//发送邮件的标题 
            mailMsg.Body = "Tai Xie E le!";//发送邮件的内容 
            //smtp 是传输协议
            SmtpClient client = new SmtpClient("smtp.126.com");//smtp.163.com,smtp.qq.com
            client.Credentials = new NetworkCredential("wang_itcast", "wangchengwei");  //用户名和密码
            client.Send(mailMsg);  //发送

 

三、实际项目中使用其发送邮件改密码

1. 首先构建一个前端页面。

<%@ Page Title="" Language="C#" MasterPageFile="~/Master/MainMaster.Master" AutoEventWireup="true" CodeBehind="FindPwd.aspx.cs" Inherits="BookShop.Web.Member.FindPwd" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Header" runat="server">
    <script type="text/javascript">
        $(function () {
            $("#btnFindPwd").click(function () {
                findPwd();
            });
        });
        function findPwd() {
            var userName = $("#txtName").val();
            var userMail = $("#txtMail").val();
            if (userName != "" && userMail != "") {
                $.post("/ashx/FindPwd.ashx", { "name": userName, "mail": userMail }, function (data) {

                });
            } else {
                alert("用户名邮箱不能为空");
            }
        }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

    <table>
        <tr><td>用户名</td><td><input type="text" id="txtName" /></td></tr>
          <tr><td>邮箱</td><td><input type="text" id="txtMail" /></td></tr>
          <tr><td colspan="2"><input type="button" value="找回密码" id="btnFindPwd" /></td></tr>
    </table>
</asp:Content>

2. 后端代码是:生成一个8位数的密码,然后更新在数据库中,发送给用户。

3. 但是该方法更改密码有好几处安全隐患,必须,如果被别人知道你的用户名和密码,别人就会频繁的给你发送邮件,并且系统自动生成的密码不太好记忆,用户肯定会想着自己去更改,这样就会很麻烦,所有建议不使用上方的改密码,而去使用下方的改密码。

4. 修改后的方法就是,首先当用户输入用户名和邮箱都正确之后,会在userinfo用户表中添加一个生成的Guid值,并且通过邮箱的形式,将修改密码的页面加用户的id的值和Guid的值发送给用户,让用户通过点击该连接进行修改密码的操作。

思路就是这样。

posted @ 2019-05-28 22:17  锦大大的博客呀!  阅读(832)  评论(0编辑  收藏  举报