点击邮箱中链接激活账号

时间:2021-04-11 17:10:06
主要功能:当用户注册账号以后,发邮件到用户邮箱,点击邮箱中的链接就可以激活账号。
想知道具体怎么知道用户点击了邮箱中的链接,然后来激活账号的。
有详细代码更好,急用,谢谢!

18 个解决方案

#1


邮箱中的链接,应该是到你的服务器,你自然就知道了。

#2


引用楼主 pl_0803 的回复:
主要功能:当用户注册账号以后,发邮件到用户邮箱,点击邮箱中的链接就可以激活账号。
想知道具体怎么知道用户点击了邮箱中的链接,然后来激活账号的。
有详细代码更好,急用,谢谢!


点击链接,执行某个操作,可能是修改数据库中的某个字段值,就激活了.

#3


引用 2 楼 goga21cn 的回复:
引用楼主 pl_0803 的回复:
主要功能:当用户注册账号以后,发邮件到用户邮箱,点击邮箱中的链接就可以激活账号。
想知道具体怎么知道用户点击了邮箱中的链接,然后来激活账号的。
有详细代码更好,急用,谢谢!


点击链接,执行某个操作,可能是修改数据库中的某个字段值,就激活了.

对啊,可是我不太明白呢!

#4


链接里带上你需要的值作为参数

#5


这个我做过,邮箱链接中的参数是你需要的,一般是个id或用户名,当然,一定要把参数加密,不然的话,别人会猜测到这个链接,点击链接后,再把这个参数解密,进行一些操作,把这个账户激活

简单代码如下:
邮箱链接为 http://www.xxx.com?username=加密的字符串,点击后
string userName =  解密方法(Request.QueryString("username"));
再把这个账户激活

明白了吧

#6


用户表。。。加一个是否激活字段IsActivation(0、未激活,1、己激活  默认为0)。。。

一个验证码自段。。。flag

注册后。。。用MD5方式加密一个字符串(比如随机出来一个6位的数字),存到flag字段中

发送邮件到用户注册用的邮箱。。发送代码如下。。


 #region##激活注册
        /// <summary>
        /// 激活注册
        /// </summary>
        /// <param name="email"></param>
        /// <param name="url"></param>
        public static bool Activation(string email, string url)
        {
            bool flag = false;
            string formto = "service@lgooo.com";
            string to = email;
            string content = "欢迎";
            string body = "请点击些链接激活:";
            body += "<a href=" + url + ">" + url + "</a>";
            string name = "邮箱名";
            string upass = "密码";
            string smtp = "smtp地址";
            SmtpClient _smtpClient = new SmtpClient();
            _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
            _smtpClient.Host = smtp; //指定SMTP服务器
            _smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码
            MailMessage _mailMessage = new MailMessage();
            //发件人,发件人名 
            _mailMessage.From = new MailAddress(formto, "邮件显示名");       
            //收件人 
            _mailMessage.To.Add(to);
            _mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
            _mailMessage.Subject = content;//主题
          
            _mailMessage.Body = body;//内容
            _mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码
            _mailMessage.IsBodyHtml = true;//设置为HTML格式
            _mailMessage.Priority = MailPriority.High;//优先级    
            _mailMessage.IsBodyHtml = true;
            try
            {
                _smtpClient.Send(_mailMessage);
                flag = true;
            }
            catch (Exception)
            {
                
                flag = false;
            }
            return flag;
        }
        #endregion


以上方参数url可以带上参数(用户ID和激活生成的md5加密的一个字符串flag)

跳转页再通过这两个参数判断。。是否存在。。如果存在。。只要flag字段相同。。就把IsActivation改为1.。。。激活成功

#7


引用 3 楼 pl_0803 的回复:
引用 2 楼 goga21cn 的回复:

引用楼主 pl_0803 的回复:
主要功能:当用户注册账号以后,发邮件到用户邮箱,点击邮箱中的链接就可以激活账号。
想知道具体怎么知道用户点击了邮箱中的链接,然后来激活账号的。
有详细代码更好,急用,谢谢!


点击链接,执行某个操作,可能是修改数据库中的某个字段值,就激活了.

对啊,可是我不太明白呢!


比如说将该用户的状态值由初始状态0改为激活状态1 之类的

#8


现在有个问题,就是那个链接怎么写都错嘛!邮箱无法识别链接

#9


链接上面带个参数
在指定页面获取参数 发送的时候将这个参数加密
到你的页面 解密参数 然后修改数据库标记

#10


以前做过,其实楼主你可以参考下DISCUZ.net的代码设计,他里面也有这方面的设计的。

#11


我也正准备做这样一个功能。mark一下

#12


我现在连那个链接都有点问题,链接不知道怎么回事显示的不是链接

#13


学习中~~~多指教。

#14


自己服务器接收参数更新标识的字段呗

#15


哎,关键是你连基本的思路都没有
如果你是用change.aspx来处理用户的状态,最简单的:在邮箱中的链接是 http://youdomain.com/change.aspx?uid=123   123为用户的ID
change.aspx.cs里面
page_load方法内
if(!string.isnullorempty(request["uid"]))
{
    int uid=convert.toint32(request["uid"].tostring());
    string sql="update member set flag=1 where uid="+uid;//假如flag字段为表示用户是否激活的字段,0为默认未激活,1为激活,大体就是这样,如果这样你都不理解,我也没办法了
}

#16


引用 15 楼 woaixiayutian 的回复:
哎,关键是你连基本的思路都没有
如果你是用change.aspx来处理用户的状态,最简单的:在邮箱中的链接是 http://youdomain.com/change.aspx?uid=123   123为用户的ID
change.aspx.cs里面
page_load方法内
if(!string.isnullorempty(request["uid"]))
{
int uid=con……

呵呵,我自己弄错了!谢谢你!

#17


嗯,主要是怎么生成这个链接。

跟用户对应起来。

#18


引用 17 楼 kaukiyou 的回复:
嗯,主要是怎么生成这个链接。

跟用户对应起来。


如果链接是http://youdomain.com/change.aspx?uid=123,你的意思是123不知道怎么获取是不?这个123就是用户的ID啊,你连用户的邮箱都知道了,ID应该也会知道吧

#1


邮箱中的链接,应该是到你的服务器,你自然就知道了。

#2


引用楼主 pl_0803 的回复:
主要功能:当用户注册账号以后,发邮件到用户邮箱,点击邮箱中的链接就可以激活账号。
想知道具体怎么知道用户点击了邮箱中的链接,然后来激活账号的。
有详细代码更好,急用,谢谢!


点击链接,执行某个操作,可能是修改数据库中的某个字段值,就激活了.

#3


引用 2 楼 goga21cn 的回复:
引用楼主 pl_0803 的回复:
主要功能:当用户注册账号以后,发邮件到用户邮箱,点击邮箱中的链接就可以激活账号。
想知道具体怎么知道用户点击了邮箱中的链接,然后来激活账号的。
有详细代码更好,急用,谢谢!


点击链接,执行某个操作,可能是修改数据库中的某个字段值,就激活了.

对啊,可是我不太明白呢!

#4


链接里带上你需要的值作为参数

#5


这个我做过,邮箱链接中的参数是你需要的,一般是个id或用户名,当然,一定要把参数加密,不然的话,别人会猜测到这个链接,点击链接后,再把这个参数解密,进行一些操作,把这个账户激活

简单代码如下:
邮箱链接为 http://www.xxx.com?username=加密的字符串,点击后
string userName =  解密方法(Request.QueryString("username"));
再把这个账户激活

明白了吧

#6


用户表。。。加一个是否激活字段IsActivation(0、未激活,1、己激活  默认为0)。。。

一个验证码自段。。。flag

注册后。。。用MD5方式加密一个字符串(比如随机出来一个6位的数字),存到flag字段中

发送邮件到用户注册用的邮箱。。发送代码如下。。


 #region##激活注册
        /// <summary>
        /// 激活注册
        /// </summary>
        /// <param name="email"></param>
        /// <param name="url"></param>
        public static bool Activation(string email, string url)
        {
            bool flag = false;
            string formto = "service@lgooo.com";
            string to = email;
            string content = "欢迎";
            string body = "请点击些链接激活:";
            body += "<a href=" + url + ">" + url + "</a>";
            string name = "邮箱名";
            string upass = "密码";
            string smtp = "smtp地址";
            SmtpClient _smtpClient = new SmtpClient();
            _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
            _smtpClient.Host = smtp; //指定SMTP服务器
            _smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码
            MailMessage _mailMessage = new MailMessage();
            //发件人,发件人名 
            _mailMessage.From = new MailAddress(formto, "邮件显示名");       
            //收件人 
            _mailMessage.To.Add(to);
            _mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
            _mailMessage.Subject = content;//主题
          
            _mailMessage.Body = body;//内容
            _mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码
            _mailMessage.IsBodyHtml = true;//设置为HTML格式
            _mailMessage.Priority = MailPriority.High;//优先级    
            _mailMessage.IsBodyHtml = true;
            try
            {
                _smtpClient.Send(_mailMessage);
                flag = true;
            }
            catch (Exception)
            {
                
                flag = false;
            }
            return flag;
        }
        #endregion


以上方参数url可以带上参数(用户ID和激活生成的md5加密的一个字符串flag)

跳转页再通过这两个参数判断。。是否存在。。如果存在。。只要flag字段相同。。就把IsActivation改为1.。。。激活成功

#7


引用 3 楼 pl_0803 的回复:
引用 2 楼 goga21cn 的回复:

引用楼主 pl_0803 的回复:
主要功能:当用户注册账号以后,发邮件到用户邮箱,点击邮箱中的链接就可以激活账号。
想知道具体怎么知道用户点击了邮箱中的链接,然后来激活账号的。
有详细代码更好,急用,谢谢!


点击链接,执行某个操作,可能是修改数据库中的某个字段值,就激活了.

对啊,可是我不太明白呢!


比如说将该用户的状态值由初始状态0改为激活状态1 之类的

#8


现在有个问题,就是那个链接怎么写都错嘛!邮箱无法识别链接

#9


链接上面带个参数
在指定页面获取参数 发送的时候将这个参数加密
到你的页面 解密参数 然后修改数据库标记

#10


以前做过,其实楼主你可以参考下DISCUZ.net的代码设计,他里面也有这方面的设计的。

#11


我也正准备做这样一个功能。mark一下

#12


我现在连那个链接都有点问题,链接不知道怎么回事显示的不是链接

#13


学习中~~~多指教。

#14


自己服务器接收参数更新标识的字段呗

#15


哎,关键是你连基本的思路都没有
如果你是用change.aspx来处理用户的状态,最简单的:在邮箱中的链接是 http://youdomain.com/change.aspx?uid=123   123为用户的ID
change.aspx.cs里面
page_load方法内
if(!string.isnullorempty(request["uid"]))
{
    int uid=convert.toint32(request["uid"].tostring());
    string sql="update member set flag=1 where uid="+uid;//假如flag字段为表示用户是否激活的字段,0为默认未激活,1为激活,大体就是这样,如果这样你都不理解,我也没办法了
}

#16


引用 15 楼 woaixiayutian 的回复:
哎,关键是你连基本的思路都没有
如果你是用change.aspx来处理用户的状态,最简单的:在邮箱中的链接是 http://youdomain.com/change.aspx?uid=123   123为用户的ID
change.aspx.cs里面
page_load方法内
if(!string.isnullorempty(request["uid"]))
{
int uid=con……

呵呵,我自己弄错了!谢谢你!

#17


嗯,主要是怎么生成这个链接。

跟用户对应起来。

#18


引用 17 楼 kaukiyou 的回复:
嗯,主要是怎么生成这个链接。

跟用户对应起来。


如果链接是http://youdomain.com/change.aspx?uid=123,你的意思是123不知道怎么获取是不?这个123就是用户的ID啊,你连用户的邮箱都知道了,ID应该也会知道吧