ibcadmin 发表于 2014-11-4 09:17:07

asp.net注册发送邮件并激活

现在最常用就是用户注册时发送个邮件,用户点击时进行激活,毕竟对个人来说注册发送手机短信比较浪费钱。

首先,数据库应该是这样的。



State为用户状态0为禁用1为可用默认为0,下面有个UserGUID,这个字段将来用于激活账户

你要写一个表单,验证码神马的,这个我就不写了。。直接写处理的 代码在下面




if (IsPostBack)
            {
                string userName = Request["UserName"];
                string userPwd = Request["UserPwd"];
                string userEmail = Request["UserEmail"];
                string EmailGUID = Guid.NewGuid().ToString();
            
                //UserInfosEntities
                if (CheckValidCode())
                {
                  if (InsertUserInfo(new userinfo()
                  {
                        UserName = userName,
                        UserPwd = userPwd,
                        State = 0,
                        UserEmail = userEmail,
                        UserGUID = EmailGUID
                        
                  }))
                  {
                        
                        string str = Request.ServerVariables["Http_Host"];           //这句话的意思是获取域名和端口,因为我是在本机调试的,要是重新生成的话端口就改了- - 我很郁闷 ...这是大神告诉我的...
                        MailMessage mailMsg = new MailMessage();                         //要引入System.Net这个Assembly
                        mailMsg.From = new MailAddress("ibcadmin@ibcibc.com", "自己的名字"); //源邮件地址
                        mailMsg.To.Add(new MailAddress(userEmail, "对方的名字"));         //目的邮件地址。可以有多个收件人
                        mailMsg.Subject = "激活帐号";                                     //发送邮件的标题
                        userName = Common.Base64.EncodeBase64(Encoding.UTF8, userName);    //这个是把传去的名字转换成base64的,我试过Encoding,不行,找了好久,中文一直乱码,只好把它转成这个样子了。。
                        string emailStr
                = string.Format("单击以下激活链接,激活帐号http://{0}/ActivUserInfo.aspx?UserName={1}&GUID={2}",str,userName,EmailGUID);                  //这个就是将来发到邮箱里面的激活链接
                        mailMsg.Body = emailStr;                                    //发送邮件的内容
                        mailMsg.IsBodyHtml = true;                      //内容是否是HTML
                        mailMsg.BodyEncoding = Encoding.UTF8;                //编码格式为UTF-8
                        SmtpClient client = new SmtpClient("smtp.qq.com");            // 发件人所使用邮箱的SMTP服务器地址。
                        client.Credentials = new NetworkCredential("发送邮件的帐号", "发送邮件的密码"); //发件人邮箱的用户名和密码.
                        client.Send(mailMsg);                        //发送邮件
                        Response.Redirect("/Admin.aspx");
                  }
                  else
                  {
                        Response.Redirect("/Login.aspx");
                  
                  }

                }
                else
                {
                  Message = "验证码输入错误,请重新输入!!!";
                }

下面隐藏部分是如何激活链接
回复后请手动刷新界面,才能出来代码效果!

**** Hidden Message *****

zxczxc123 发表于 2014-11-4 09:19:52

还有隐藏内容啊

飞/可爱朋 发表于 2014-11-4 09:22:06

:o

桂林一枝花 发表于 2014-11-4 09:22:31

强势围观

飞/可爱朋 发表于 2014-11-4 09:24:05

soga

yikaixin456 发表于 2014-11-4 09:31:02

:lol火速围观

OSdance 发表于 2014-11-4 09:51:57

围观:lol

韠麣龘龘爨矲鼶 发表于 2014-11-4 10:57:09

我了个擦

小磊 发表于 2014-11-6 11:43:54

楼主不错 顶你:D

tonysso 发表于 2014-11-14 15:56:24

Thx for teaching
页: [1] 2 3 4 5
查看完整版本: asp.net注册发送邮件并激活