现在最常用就是用户注册时发送个邮件,用户点击时进行激活,毕竟对个人来说注册发送手机短信比较浪费钱。
首先,数据库应该是这样的。
asp.net注册发送邮件并激活
State为用户状态 0为禁用 1为可用 默认为0,下面有个UserGUID,这个字段将来用于激活账户
你要写一个表单,验证码神马的,这个我就不写了。。直接写处理的 代码在下面
[C#] 纯文本查看 复制代码
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("[url=mailto:ibcadmin@ibcibc.com]ibcadmin@ibcibc.com[/url]", "自己的名字"); //源邮件地址
mailMsg.To.Add(new MailAddress(userEmail, "对方的名字")); //目的邮件地址。可以有多个收件人
mailMsg.Subject = "激活帐号"; //发送邮件的标题
userName = Common.Base64.EncodeBase64(Encoding.UTF8, userName); //这个是把传去的名字转换成base64的,我试过Encoding,不行,找了好久,中文一直乱码,只好把它转成这个样子了。。
string emailStr
= string.Format("单击以下激活链接,激活帐号[url=http://{0}/ActivUserInfo.aspx?UserName={1}&GUID={2}]http://{0}/ActivUserInfo.aspx?UserName={1}&GUID={2}",str,userName,EmailGUID[/url]); //这个就是将来发到邮箱里面的激活链接
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 = "验证码输入错误,请重新输入!!!";
}
下面隐藏部分是如何激活链接
回复后请手动刷新界面,才能出来代码效果!
|