C#注册Email发送验证码详解

C#注册Email发送验证码详解


流程:使用C#中Membership框架完成用户注册

        /// <summary>
        /// 注册事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button1_Click(object sender, EventArgs e)
        {
            MembershipCreateStatus status;
            MembershipUser user= Membership.CreateUser(txtuserName.Text.Trim(), txtPWD.Text.Trim(), txtEmail.Text.Trim(), txtQue.Text.Trim(),
                                  txtAnswer.Text.Trim(), true, out status);
            if (status == MembershipCreateStatus.Success)
            {
                //注册成功
                this.Title = "注册成功";
                //用户注册的邮箱
                BLL.UserInfo bll = new UserInfo();
                MODEL.UserInfo model = new MODEL.UserInfo();

                model.Id = new Guid(user.ProviderUserKey.ToString());
                model.QQ = txtQQ.Text.Trim();
                model.IdCode = Guid.NewGuid().ToString().Replace("-", "");
                model.UserType = false;
                string code = model.IdCode;
                string UserId = model.Id.ToString();
                //生成注册激活码和用户其他信息
                if ( bll.insertUser(model)>0)
                {
                    string emailaddress = txtEmail.Text.Trim();
                    //发送邮箱验证
                    IdCodeForEmail(emailaddress, code, UserId); 
                }
            }
            if (status == MembershipCreateStatus.InvalidUserName)
            {
                this.Title = "用户名不合法";
            }
            if (status==MembershipCreateStatus.DuplicateUserName)
            {
                this.Title = "用户名重复";
            }
            //各种Membership中的用户注册判断
        }



        protected void IdCodeForEmail(string toEmail,string idCode,string userId)
        {
            MailMessage mailMsg = new MailMessage();//引用 Net.Mail名称空间

            mailMsg.From = new MailAddress("***@qq.com", "***集团公司");

            mailMsg.To.Add(new MailAddress(toEmail, "尊敬的用户"));
            System.Text.StringBuilder eMailCode = new StringBuilder();
            eMailCode.Append("请点击下面链接激活账号:");
            //=&userName='>点击激活</a>
            eMailCode.Append("<a href='a.aspx?code").Append("=").Append(idCode).Append("&userName=").Append(userId).Append("'>点击激活</a>");
            //eMail中正文部分
            AlternateView htmlBody =
            AlternateView.CreateAlternateViewFromString(eMailCode.ToString(), null, "text/html");
            mailMsg.AlternateViews.Add(htmlBody); 
            //eMail中的标题
            mailMsg.Subject = "关于***";


            SmtpClient client = new SmtpClient("smtp.qq.com");

            client.Credentials = new NetworkCredential("***", "***");

            client.Send(mailMsg);
        }

主要要注意发送时的Smtp域名是否正确

还有就是在Email中嵌入HTML的代码

l 发送 HTML 格式邮件:

AlternateViewhtmlBody =

          AlternateView.CreateAlternateViewFromString(htmlBodyContent, null, "text/html");

            mailMsg.AlternateViews.Add(htmlBody);

          或者mailMsg.IsBodyHtml = true;

(*)发送带嵌入图片邮件之SMTP实现和ESMTP实现》http://www.cnblogs.com/wuhuacong/archive/2009/11/13/1601491.html  离线文档



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值