首页 > 代码库 > 注册发送邮件~!
注册发送邮件~!
当用户在一个新的网站上注册用户时,注册成功后就会发送一个激活链接,点击激活链接验证通过后,用户为激活状态,反之未激活。
新建一个用户表【为了演示,用户表字段不是很多】
Id int -主键ID
UserName nvarchar--用户名
Password nvarchar --密码
Email nvarchar--注册邮箱
VCode[uniqueidentifier] ---激活码,
Status nvarchar -- 激活状态
******************************************************
发送邮箱
public void SendValidataEmail(int userId)
{
UserModel userinfo=GetModel(userId);
userinfo.VCode=Guid.NewGuid();//生成激活码
new UserManager().update(userinfo);//保存更新--将激活码更新到当前注册的用户表
MailMessage mailMsg=new MailMessage();
mailMsg.From=new MailAddress("zhangsan@163.com","显示名称");//发送者
mailMsg.To.Add(new MailAddress(userinfo.Email,userinfo.UserName));//接收者
mailMsg.Subject="激活您在**新注册的用户"+user.UserName;//发送邮件的标题
string validateUrl="http://www.***.com/ValidateUser.aspx?username=" + HttpUtility.UrlEncode(user.UserName)+"&vcode="+userinfo.VCode;
mailMsg.Body= "点击下面的链接激活您的帐户(如果看不到超链接,则把网址粘贴到您的浏览器打开):<a href=http://www.mamicode.com/‘" + validateUrl + "‘>点此激活</a>";
mailMsg.IsBodyHtml = true;
SmtpClient client = new SmtpClient("stmp@163.com");
client.Credentials = new NetworkCredential("zhangsan", "123456");
//有的smtp服务器的用户名是:zhangsan@163.com,有的是zhangsan
//用户名、密码必须和From一致
client.Send(mailMsg);
}
---------------------------------------------------------------------------------------------------------
public bool ValidateVCode(string username, Guid vcode)
{
//没有做:如果用户名不存在、激活码错误、激活码过期(增加一个激活码生成时间字段,只有半个小时之内的才能有效)等几个状态定义为枚举
UserModel userInfo = GetByUserName(username);
if (userInfo == null)
{
return false;
}
//return vcode == userInfo.VCode;
if (vcode == userInfo.VCode)
{
//修改激活状态
userInfo.Status = "已激活";
Update(userInfo);
return true;
}
else
{
return false;
}
}
---------------------------------------------------------------------------------------------------------
注册页面-- RegisterUser.aspx
UserModel user=new UserModel();
//暂且不考虑用户名是否存,密码加密,邮箱是否注册过等验证
user.UserName=this.txtUserName.Text;
user.Password=this.txtPassword.Text;
user.Email=this.txtEmail.Text;
user.Status="未激活";
new UserManager().Add(user);
new UserManager().SendValidataEmail(user.id);
---------------------------------------------------------------------------------------------------------
验证页面--ValidateUser.aspx
string username = Request["username"];
Guid vCode = new Guid(Request["vcode"]);
if (new UserManager().ValidateVCode(username, vCode))
{
labelMsg.Text = "激活帐户" + username + "成功";
}
else
{
labelMsg.Text = "激活帐户" + username + "失败";
}