系统自动生成密码,发送到邮箱,用户激活后才能成为会员.
这样的效果如何实现?
希望能有个全面的列子 yuncpu@163.com
66 个解决方案
#1
自己写吧,这个又不难。不能什么都要例子。
#2
这个思路应该很简单吧,并且实现方法也会有多种,用户里有一个是否激活的字段,注册的时候默认未激活,发送一个链接,这个链接点击一下就做激活的动作,然后跳到首页。
有的网站则是发送激活号码,用户要自己登录网站去激活
有的网站则是发送激活号码,用户要自己登录网站去激活
#3
在建表的时候多添加一个字段假设为state(状态)
当用户注册成功后添加一条数据state的状态为未激活
当用户点击激活后,将state的状态变为激活的了,
就这样。。。。。。。
当用户注册成功后添加一条数据state的状态为未激活
当用户点击激活后,将state的状态变为激活的了,
就这样。。。。。。。
#4
这个很简单的。
#5
贴点代码参考下
#6
就是这样
#7
1.在用户表里加上一个字段标记是否被激活!
2.注册完后根据email发送邮件,也可以设置一个时间范围,从发送email到激活的时间段,打开该页面,激活,更改状态!
ps:生成的激活地址,你可以根据email MD5下,没什么难度!
楼上的几位都说了,挺简单的了!
2.注册完后根据email发送邮件,也可以设置一个时间范围,从发送email到激活的时间段,打开该页面,激活,更改状态!
ps:生成的激活地址,你可以根据email MD5下,没什么难度!
楼上的几位都说了,挺简单的了!
#8
说起来是挺简单的 可实现的时候有点问题 希望还是能给点 code看看
在邮件发送的时候怎么把地址传过去
在邮件发送的时候怎么把地址传过去
#9
我也想看看实现代码。。。
#10
试试看
#11
发送Email的时候报错 我把错误给大家贴出来 给点修改建议
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.dist.service.EmailBusiness.ToEamil(EmailBusiness.java:52)
at com.dist.service.EmailBusiness.main(EmailBusiness.java:62)
程序的路径下有mail.jar 和activation.jar包
tomcat中的lib下面有 在网上找资料说要将\jdk1.6.0_05\jre\lib\ext下面放入这两个包 也放了 可还是报错误
程序如下 package com.dist.service;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;
import com.dist.system.tools.GlobalVariant;
public class EmailBusiness {
//会员Email确认
// private HttpServletRequest request=null;
// public EmailBusiness(HttpServletRequest request)
// {
// this.request=request;
// }
public void ToEamil()
{
// 以下变量为用户根据自己的情况设置
String host = "smtp.sina.com"; // 发送邮件服务器
String user = GlobalVariant.Mail_USER; // 邮件服务器登录用户名
String password = GlobalVariant.Mail_PASSWORD; // 邮件服务器登录密码
String from = GlobalVariant.Mail_MAIL; // 发送人邮件地址
String to = "yuncpu@163.com"; // 接受人邮件地址
String subject = GlobalVariant.Mail_SIGN; // 邮件标题
String body = "欢迎注册" ; // 邮件内容
System.out.println(body);
// 以下为发送程序,用户无需改动
try {
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session ssn = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(ssn);
InternetAddress fromAddress = new InternetAddress(from);
message.setFrom(fromAddress);
InternetAddress toAddress = new InternetAddress(to);
message.addRecipient(Message.RecipientType.TO, toAddress);
message.setSubject(subject);
message.setText(body);
Transport transport = ssn.getTransport("smtp");
transport.connect(host,user,password);
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.send(message);
transport.close();
} catch (Exception e) {
System.out.println("邮件发送成功+:)");
e.printStackTrace();
}
}
public static void main(String[] args) {
EmailBusiness eb=new EmailBusiness();
eb.ToEamil();
}
}
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.dist.service.EmailBusiness.ToEamil(EmailBusiness.java:52)
at com.dist.service.EmailBusiness.main(EmailBusiness.java:62)
程序的路径下有mail.jar 和activation.jar包
tomcat中的lib下面有 在网上找资料说要将\jdk1.6.0_05\jre\lib\ext下面放入这两个包 也放了 可还是报错误
程序如下 package com.dist.service;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;
import com.dist.system.tools.GlobalVariant;
public class EmailBusiness {
//会员Email确认
// private HttpServletRequest request=null;
// public EmailBusiness(HttpServletRequest request)
// {
// this.request=request;
// }
public void ToEamil()
{
// 以下变量为用户根据自己的情况设置
String host = "smtp.sina.com"; // 发送邮件服务器
String user = GlobalVariant.Mail_USER; // 邮件服务器登录用户名
String password = GlobalVariant.Mail_PASSWORD; // 邮件服务器登录密码
String from = GlobalVariant.Mail_MAIL; // 发送人邮件地址
String to = "yuncpu@163.com"; // 接受人邮件地址
String subject = GlobalVariant.Mail_SIGN; // 邮件标题
String body = "欢迎注册" ; // 邮件内容
System.out.println(body);
// 以下为发送程序,用户无需改动
try {
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session ssn = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(ssn);
InternetAddress fromAddress = new InternetAddress(from);
message.setFrom(fromAddress);
InternetAddress toAddress = new InternetAddress(to);
message.addRecipient(Message.RecipientType.TO, toAddress);
message.setSubject(subject);
message.setText(body);
Transport transport = ssn.getTransport("smtp");
transport.connect(host,user,password);
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.send(message);
transport.close();
} catch (Exception e) {
System.out.println("邮件发送成功+:)");
e.printStackTrace();
}
}
public static void main(String[] args) {
EmailBusiness eb=new EmailBusiness();
eb.ToEamil();
}
}
#12
以前也写过类似的程序,都是小系统里的,没有很多的限制,网上有很多这种例子的,去查一下。
#13
这个应该很简单.
#14
class javax.mail.AuthenticationFailedException
#15
给了思路就很好了。
#16
这个简单的,楼上的大侠们说了无数的方法和途径!就差帮你写出来啦!java mail的例子网上实在是太多了!我再补充一呢呢:就是邮件的正文内容html的形式发送!这样直接点击链接就完成相关操作。
#17
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
Transport.send(message,message.getRecipients(Message.RecipientType.TO));
transport.send(message);
问题已经找出来;但对于上面的几个调用方法不是太明白;有了解的给详细解释下;
拜托不要说很简单之类的话;如果觉得不值得一说的话;麻烦你就别留言了;谢谢
Transport.send(message,message.getRecipients(Message.RecipientType.TO));
transport.send(message);
问题已经找出来;但对于上面的几个调用方法不是太明白;有了解的给详细解释下;
拜托不要说很简单之类的话;如果觉得不值得一说的话;麻烦你就别留言了;谢谢
#18
你可以先去查阅些JAVAMAIL的相关资料。然后再回到你这个应用来。很快就可以明白了。
#19
你直接传登录首页的地址也是可以的吧
#20
zx
#21
就像他说的一样,加个状态标记字段,默认为未激活,
至于自动生成密码,这个也蛮简单,你可以用随机数加随机字母产生。
客户确认激活时其实就是个更新操作,把状态更新一下就可以了
#22
哦,谢谢啊
#23
果真是难了不会,会了不难呀!
真是苦了我们这些脑子还在糊涂中的人啊。
各位仁兄还是写一段例子或是指认一下楼主代码中的错误吧。
真是苦了我们这些脑子还在糊涂中的人啊。
各位仁兄还是写一段例子或是指认一下楼主代码中的错误吧。
#24
恩,有道理,顶LS!
#25
老说有 倒是整一段看看 好学习下 啊
#26
验证失败,请检查smtp服务器是否设置以及用户名 密码等,
#27
支持一下!!
#28
发送:URL+动态参数,用户进入页面中根据参数去修改数据表状态
#29
学习
#30
学习。。
#31
恩看看
#32
上个学期做过,实现原理就是利用javax.mail包来发送邮件(下载该组件,里面有文档说明怎么用),在发送的邮件里面包含随机生成的验证码,同时将该验证码保存在服务器(比如application对象),这样就可以通过点击发到注册用户邮件的链接来验证激活用户了.
#33
努力 啊
#34
c#程序里怎么导入动画啊?
#35
我感觉说起来貌似很简单,但是做的时候却发现原来还差了很多,大家多动手吧
#36
看到了,谢谢11楼提供
#37
路过,看一下
#38
看一下 学习了
#39
当用户注册成功后添加一条数据state的状态为未激活
当用户点击激活后,将state的状态变为激活的了,
当用户点击激活后,将state的状态变为激活的了,
#40
学习,以前看过人家的,觉得如果自己写的话,学习一下应该能搞定
#41
回帖是一种美德!每天回帖即可获得 10 分可用分!
#42
第一,首先确认下你的用户名,密码,右键地址是否正确。
第二,你的设置是否禁用了SMTP/POP3了。。
第三,有可能现在163已经不支持SMTP/POP3了,建议换个邮箱试试,如:qq邮箱,将smtp/pop3开启。
第二,你的设置是否禁用了SMTP/POP3了。。
第三,有可能现在163已经不支持SMTP/POP3了,建议换个邮箱试试,如:qq邮箱,将smtp/pop3开启。
#43
浮躁加懒惰
眼高手低、好逸恶劳。。。。。。。
#44
学习下
#45
学习。UP
#46
首先感谢你能参与本帖;
我在做这个的时候已经找了很多资料;邮件发送已经成功;但还是报那样的错误;所以就发上来;
最后查出报错的是 transport.send(message); 这句话注释后还可以正常发送;
集思广益;再次感谢大家.
我在做这个的时候已经找了很多资料;邮件发送已经成功;但还是报那样的错误;所以就发上来;
最后查出报错的是 transport.send(message); 这句话注释后还可以正常发送;
集思广益;再次感谢大家.
#47
呵 LS都讲的比较清晰了
BTW: 在注册的时候可以使用 观察者模式 ^_^
BTW: 在注册的时候可以使用 观察者模式 ^_^
#48
我没做过
在用户注册的时候除了要加用户状态之外 同时生成个随机码 然后用JAVAMAIL 一起发到用户邮箱里去(当然也可以直接发个链接 让用户点完之后直接激活)
大概就是这样吧..
在用户注册的时候除了要加用户状态之外 同时生成个随机码 然后用JAVAMAIL 一起发到用户邮箱里去(当然也可以直接发个链接 让用户点完之后直接激活)
大概就是这样吧..
#49
邮箱的话 我建议你用QQ
#50
另外 生成的随机码绝对不能重复 因为回头激活的时候是要根据激活码查找用户的 (或者是根据激活码跟用户一起查找)
#1
自己写吧,这个又不难。不能什么都要例子。
#2
这个思路应该很简单吧,并且实现方法也会有多种,用户里有一个是否激活的字段,注册的时候默认未激活,发送一个链接,这个链接点击一下就做激活的动作,然后跳到首页。
有的网站则是发送激活号码,用户要自己登录网站去激活
有的网站则是发送激活号码,用户要自己登录网站去激活
#3
在建表的时候多添加一个字段假设为state(状态)
当用户注册成功后添加一条数据state的状态为未激活
当用户点击激活后,将state的状态变为激活的了,
就这样。。。。。。。
当用户注册成功后添加一条数据state的状态为未激活
当用户点击激活后,将state的状态变为激活的了,
就这样。。。。。。。
#4
这个很简单的。
#5
贴点代码参考下
#6
就是这样
#7
1.在用户表里加上一个字段标记是否被激活!
2.注册完后根据email发送邮件,也可以设置一个时间范围,从发送email到激活的时间段,打开该页面,激活,更改状态!
ps:生成的激活地址,你可以根据email MD5下,没什么难度!
楼上的几位都说了,挺简单的了!
2.注册完后根据email发送邮件,也可以设置一个时间范围,从发送email到激活的时间段,打开该页面,激活,更改状态!
ps:生成的激活地址,你可以根据email MD5下,没什么难度!
楼上的几位都说了,挺简单的了!
#8
说起来是挺简单的 可实现的时候有点问题 希望还是能给点 code看看
在邮件发送的时候怎么把地址传过去
在邮件发送的时候怎么把地址传过去
#9
我也想看看实现代码。。。
#10
试试看
#11
发送Email的时候报错 我把错误给大家贴出来 给点修改建议
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.dist.service.EmailBusiness.ToEamil(EmailBusiness.java:52)
at com.dist.service.EmailBusiness.main(EmailBusiness.java:62)
程序的路径下有mail.jar 和activation.jar包
tomcat中的lib下面有 在网上找资料说要将\jdk1.6.0_05\jre\lib\ext下面放入这两个包 也放了 可还是报错误
程序如下 package com.dist.service;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;
import com.dist.system.tools.GlobalVariant;
public class EmailBusiness {
//会员Email确认
// private HttpServletRequest request=null;
// public EmailBusiness(HttpServletRequest request)
// {
// this.request=request;
// }
public void ToEamil()
{
// 以下变量为用户根据自己的情况设置
String host = "smtp.sina.com"; // 发送邮件服务器
String user = GlobalVariant.Mail_USER; // 邮件服务器登录用户名
String password = GlobalVariant.Mail_PASSWORD; // 邮件服务器登录密码
String from = GlobalVariant.Mail_MAIL; // 发送人邮件地址
String to = "yuncpu@163.com"; // 接受人邮件地址
String subject = GlobalVariant.Mail_SIGN; // 邮件标题
String body = "欢迎注册" ; // 邮件内容
System.out.println(body);
// 以下为发送程序,用户无需改动
try {
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session ssn = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(ssn);
InternetAddress fromAddress = new InternetAddress(from);
message.setFrom(fromAddress);
InternetAddress toAddress = new InternetAddress(to);
message.addRecipient(Message.RecipientType.TO, toAddress);
message.setSubject(subject);
message.setText(body);
Transport transport = ssn.getTransport("smtp");
transport.connect(host,user,password);
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.send(message);
transport.close();
} catch (Exception e) {
System.out.println("邮件发送成功+:)");
e.printStackTrace();
}
}
public static void main(String[] args) {
EmailBusiness eb=new EmailBusiness();
eb.ToEamil();
}
}
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.dist.service.EmailBusiness.ToEamil(EmailBusiness.java:52)
at com.dist.service.EmailBusiness.main(EmailBusiness.java:62)
程序的路径下有mail.jar 和activation.jar包
tomcat中的lib下面有 在网上找资料说要将\jdk1.6.0_05\jre\lib\ext下面放入这两个包 也放了 可还是报错误
程序如下 package com.dist.service;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;
import com.dist.system.tools.GlobalVariant;
public class EmailBusiness {
//会员Email确认
// private HttpServletRequest request=null;
// public EmailBusiness(HttpServletRequest request)
// {
// this.request=request;
// }
public void ToEamil()
{
// 以下变量为用户根据自己的情况设置
String host = "smtp.sina.com"; // 发送邮件服务器
String user = GlobalVariant.Mail_USER; // 邮件服务器登录用户名
String password = GlobalVariant.Mail_PASSWORD; // 邮件服务器登录密码
String from = GlobalVariant.Mail_MAIL; // 发送人邮件地址
String to = "yuncpu@163.com"; // 接受人邮件地址
String subject = GlobalVariant.Mail_SIGN; // 邮件标题
String body = "欢迎注册" ; // 邮件内容
System.out.println(body);
// 以下为发送程序,用户无需改动
try {
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session ssn = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(ssn);
InternetAddress fromAddress = new InternetAddress(from);
message.setFrom(fromAddress);
InternetAddress toAddress = new InternetAddress(to);
message.addRecipient(Message.RecipientType.TO, toAddress);
message.setSubject(subject);
message.setText(body);
Transport transport = ssn.getTransport("smtp");
transport.connect(host,user,password);
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.send(message);
transport.close();
} catch (Exception e) {
System.out.println("邮件发送成功+:)");
e.printStackTrace();
}
}
public static void main(String[] args) {
EmailBusiness eb=new EmailBusiness();
eb.ToEamil();
}
}
#12
以前也写过类似的程序,都是小系统里的,没有很多的限制,网上有很多这种例子的,去查一下。
#13
这个应该很简单.
#14
class javax.mail.AuthenticationFailedException
#15
给了思路就很好了。
#16
这个简单的,楼上的大侠们说了无数的方法和途径!就差帮你写出来啦!java mail的例子网上实在是太多了!我再补充一呢呢:就是邮件的正文内容html的形式发送!这样直接点击链接就完成相关操作。
#17
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
Transport.send(message,message.getRecipients(Message.RecipientType.TO));
transport.send(message);
问题已经找出来;但对于上面的几个调用方法不是太明白;有了解的给详细解释下;
拜托不要说很简单之类的话;如果觉得不值得一说的话;麻烦你就别留言了;谢谢
Transport.send(message,message.getRecipients(Message.RecipientType.TO));
transport.send(message);
问题已经找出来;但对于上面的几个调用方法不是太明白;有了解的给详细解释下;
拜托不要说很简单之类的话;如果觉得不值得一说的话;麻烦你就别留言了;谢谢
#18
你可以先去查阅些JAVAMAIL的相关资料。然后再回到你这个应用来。很快就可以明白了。
#19
你直接传登录首页的地址也是可以的吧
#20
zx
#21
就像他说的一样,加个状态标记字段,默认为未激活,
至于自动生成密码,这个也蛮简单,你可以用随机数加随机字母产生。
客户确认激活时其实就是个更新操作,把状态更新一下就可以了
#22
哦,谢谢啊
#23
果真是难了不会,会了不难呀!
真是苦了我们这些脑子还在糊涂中的人啊。
各位仁兄还是写一段例子或是指认一下楼主代码中的错误吧。
真是苦了我们这些脑子还在糊涂中的人啊。
各位仁兄还是写一段例子或是指认一下楼主代码中的错误吧。
#24
恩,有道理,顶LS!
#25
老说有 倒是整一段看看 好学习下 啊
#26
验证失败,请检查smtp服务器是否设置以及用户名 密码等,
#27
支持一下!!
#28
发送:URL+动态参数,用户进入页面中根据参数去修改数据表状态
#29
学习
#30
学习。。
#31
恩看看
#32
上个学期做过,实现原理就是利用javax.mail包来发送邮件(下载该组件,里面有文档说明怎么用),在发送的邮件里面包含随机生成的验证码,同时将该验证码保存在服务器(比如application对象),这样就可以通过点击发到注册用户邮件的链接来验证激活用户了.
#33
努力 啊
#34
c#程序里怎么导入动画啊?
#35
我感觉说起来貌似很简单,但是做的时候却发现原来还差了很多,大家多动手吧
#36
看到了,谢谢11楼提供
#37
路过,看一下
#38
看一下 学习了
#39
当用户注册成功后添加一条数据state的状态为未激活
当用户点击激活后,将state的状态变为激活的了,
当用户点击激活后,将state的状态变为激活的了,
#40
学习,以前看过人家的,觉得如果自己写的话,学习一下应该能搞定
#41
回帖是一种美德!每天回帖即可获得 10 分可用分!
#42
第一,首先确认下你的用户名,密码,右键地址是否正确。
第二,你的设置是否禁用了SMTP/POP3了。。
第三,有可能现在163已经不支持SMTP/POP3了,建议换个邮箱试试,如:qq邮箱,将smtp/pop3开启。
第二,你的设置是否禁用了SMTP/POP3了。。
第三,有可能现在163已经不支持SMTP/POP3了,建议换个邮箱试试,如:qq邮箱,将smtp/pop3开启。
#43
浮躁加懒惰
眼高手低、好逸恶劳。。。。。。。
#44
学习下
#45
学习。UP
#46
首先感谢你能参与本帖;
我在做这个的时候已经找了很多资料;邮件发送已经成功;但还是报那样的错误;所以就发上来;
最后查出报错的是 transport.send(message); 这句话注释后还可以正常发送;
集思广益;再次感谢大家.
我在做这个的时候已经找了很多资料;邮件发送已经成功;但还是报那样的错误;所以就发上来;
最后查出报错的是 transport.send(message); 这句话注释后还可以正常发送;
集思广益;再次感谢大家.
#47
呵 LS都讲的比较清晰了
BTW: 在注册的时候可以使用 观察者模式 ^_^
BTW: 在注册的时候可以使用 观察者模式 ^_^
#48
我没做过
在用户注册的时候除了要加用户状态之外 同时生成个随机码 然后用JAVAMAIL 一起发到用户邮箱里去(当然也可以直接发个链接 让用户点完之后直接激活)
大概就是这样吧..
在用户注册的时候除了要加用户状态之外 同时生成个随机码 然后用JAVAMAIL 一起发到用户邮箱里去(当然也可以直接发个链接 让用户点完之后直接激活)
大概就是这样吧..
#49
邮箱的话 我建议你用QQ
#50
另外 生成的随机码绝对不能重复 因为回头激活的时候是要根据激活码查找用户的 (或者是根据激活码跟用户一起查找)