- 浏览: 264636 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wenm168:
通过ajaxError 失效Session过期的简单方法:ht ...
Ajax请求Session超时的解决办法、servlet + jquery -
di1984HIT:
学习了,用这个就简单。。。
java生成订单编号 -
hutuxiansheng123:
...
java生成订单编号 -
bingaabing:
有用,解决了254字节限制问题!谢谢
jxl下拉长度的问题,Validation list exceeds maximum number of characters - truncating -
ldl_xz:
http://www.9958.pw/post/jquery_ ...
jquery提示插件 jquery.poshytip.js
注册时你填写了一正确 的信息后,将激活信息 自动发邮件到你的邮箱中。在用过发送发哦邮箱中的激活链接激活用户。
大概步骤如此:
1.网站用户相关表中有一个字段用来记录用户帐号是否激活。
2.当用户注册时,注册程序会自动向用户注册邮箱发送一封激活邮件,里面带激活链接(参数)。
3.当用户点击激活邮件的激活链接访问激活页面,激活页面根据链接带的参数判断出用户帐号、激活有效期等以决定是否向该用户表中的“是否激活”字段写入“已激活标记”
4.成功写入激活标记,激活成功,可以使用帐号登陆网站。
如有不正确之处还请指点。
这里有个问题:当有大量的用户注册时是采用同步发送还是异步发送邮件?答案当然是采用异步发送! 原因: 同步异步发送问题:JavaMail邮件处理是同步的,即用户触发事件、与SMTP Server通信、服务器返回状态消息、程序结束是单线程内, 这时往往因Socket通信、服务器业务处理速度等原因而使得处理时间是个未知数。举个简单的应用实例:若用户在提交注册的同时发送一封激活账户邮件, 用户有可能不知道是因为邮件服务器那儿阻塞致半天没有反应而以为注册失败并放弃,这将是失败的设计,但异步方式能解决这些问题。异步方式简单地说就是将邮件处理任务交给另外一个线程,J2EE有两种解决方案,一是种利用JMS,JMS可以实现同步和异步的消息处理,将邮件作为一个异步的消息,就可以实现异步邮件发送。JMS属于J2EE的高级应用,所以对于仅以WEB功能的容器还不支持这种服务,例如Tomcat(当然可以找到插件来解决)。另一种方案是利用JDK中Executor的支持,JDK 5.0后继版本增加了java.util.concurrent一个强大的并发工具包,它包含了执行器、计时器、锁、线程安全队列、线程任务框架等等。Executor——执行器,它可以将任务的“提交”与“执行”分离解耦,我们的邮件处理任务完全可以借用它实现异步执行。而Spring框架提供了封装,见②。
现贴出关键性的部分:
这是邮件处理的两个核心配置,第一个配置(①)是往容器中装配一个JavaMailSender Bean,它就是JavaMail的封装,其中最关键的是装配过程的属性参数,这些属性既要严格遵照JavaMail规范,又要满足邮件提供商的要求,例如SMTP服务器端口是多少、发送时是否要身份验证、服务器是否采用安全连接、连接时是否加密以及采用什么样的加密方式,邮件服务商提供的这些参数直接影响到上述的配置。
发送邮件的主要方法:
原文地址:http://student.csdn.net/space.php?uid=49357&do=blog&id=20431
大概步骤如此:
1.网站用户相关表中有一个字段用来记录用户帐号是否激活。
2.当用户注册时,注册程序会自动向用户注册邮箱发送一封激活邮件,里面带激活链接(参数)。
3.当用户点击激活邮件的激活链接访问激活页面,激活页面根据链接带的参数判断出用户帐号、激活有效期等以决定是否向该用户表中的“是否激活”字段写入“已激活标记”
4.成功写入激活标记,激活成功,可以使用帐号登陆网站。
如有不正确之处还请指点。
这里有个问题:当有大量的用户注册时是采用同步发送还是异步发送邮件?答案当然是采用异步发送! 原因: 同步异步发送问题:JavaMail邮件处理是同步的,即用户触发事件、与SMTP Server通信、服务器返回状态消息、程序结束是单线程内, 这时往往因Socket通信、服务器业务处理速度等原因而使得处理时间是个未知数。举个简单的应用实例:若用户在提交注册的同时发送一封激活账户邮件, 用户有可能不知道是因为邮件服务器那儿阻塞致半天没有反应而以为注册失败并放弃,这将是失败的设计,但异步方式能解决这些问题。异步方式简单地说就是将邮件处理任务交给另外一个线程,J2EE有两种解决方案,一是种利用JMS,JMS可以实现同步和异步的消息处理,将邮件作为一个异步的消息,就可以实现异步邮件发送。JMS属于J2EE的高级应用,所以对于仅以WEB功能的容器还不支持这种服务,例如Tomcat(当然可以找到插件来解决)。另一种方案是利用JDK中Executor的支持,JDK 5.0后继版本增加了java.util.concurrent一个强大的并发工具包,它包含了执行器、计时器、锁、线程安全队列、线程任务框架等等。Executor——执行器,它可以将任务的“提交”与“执行”分离解耦,我们的邮件处理任务完全可以借用它实现异步执行。而Spring框架提供了封装,见②。
现贴出关键性的部分:
<!-- 发送Email配置 --> <!--①邮件服务器--> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="protocol" value="smtp" /> <property name="host" value="smtp.sina.com" /> <!--<property name="port" value="465" /> <property name="username" value="xxx@sina.com" /> <property name="password" value="xxx" /> <property name="javaMailProperties"> <props> <!-- 使用用户名和密码验证 --> <prop key="mail.smtp.auth">true</prop> <!-- <prop key="mail.smtp.starttls.enable">true</prop> <prop key="mail.smtp.socketFactory.class"> javax.net.ssl.SSLSocketFactory </prop>gmail要求的ssl连接 --> </props> </property> </bean> <!--②异步线程执行器--> <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="10" /> <property name="maxPoolSize" value="30" /> </bean>
这是邮件处理的两个核心配置,第一个配置(①)是往容器中装配一个JavaMailSender Bean,它就是JavaMail的封装,其中最关键的是装配过程的属性参数,这些属性既要严格遵照JavaMail规范,又要满足邮件提供商的要求,例如SMTP服务器端口是多少、发送时是否要身份验证、服务器是否采用安全连接、连接时是否加密以及采用什么样的加密方式,邮件服务商提供的这些参数直接影响到上述的配置。
发送邮件的主要方法:
public void sendMail(Mail email) throws MessagingException, IOException { String tto[] = email.getTo().trim().split(";"); if (email.getTo() == null || email.getTo().trim().length() == 0) { System.out.println("没有收件人!"); return; } if (tto.length > 1) {// 收件人大于5封时,采用异步发送 System.out.println("2222222222222222222"); ctx = new ClassPathXmlApplicationContext("springapplicationContext.xml"); sendMailByAsynchronousMode(email); System.out.println("收件人过多,正在采用异步方式发送..."); } else { System.out.println("333333333333333333"); ctx = new ClassPathXmlApplicationContext("springapplicationContext.xml"); sendMailBySynchronizationMode(email); System.out.println("正在同步方式发送邮件..."); } } /** * 异步发送 */ public void sendMailByAsynchronousMode(final Mail email) { try { TaskExecutor taskExecutor = (TaskExecutor) ctx .getBean("taskExecutor"); taskExecutor.execute(new Runnable() { public void run() { try { sendMailBySynchronizationMode(email); } catch (Exception e) { e.printStackTrace(); } } }); } catch (RuntimeException e) { System.out.println("异步发送邮件出现异常:" + e.getMessage()); } } /** * 同步发送 */ public void sendMailBySynchronizationMode(Mail email) throws MessagingException, IOException { JavaMailSender sender = (JavaMailSender) ctx.getBean("mailSender"); MimeMessage mime = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mime, true, "utf-8"); helper.setFrom(email.getFrom());// 发件人 helper.setReplyTo("xxx@sina.com");// 回复到 helper.setSubject(email.getSubject());// 邮件主题 helper.setText(email.getContent(), true);// 邮件内容 true表示设定html格式 String tto[] = email.getTo().trim().split(";"); if (tto.length > 0) { InternetAddress address[] = new InternetAddress[tto.length]; for (int i = 0; i < tto.length; i++) { address[i] = new InternetAddress(tto[i]); } if (email.getType() == "CC") { helper.setCc(address); } else if (email.getType() == "BCC") { helper.setBcc(address); } else { helper.setTo(address); } } sender.send(mime); }
原文地址:http://student.csdn.net/space.php?uid=49357&do=blog&id=20431
发表评论
-
hibernate EmptyInterceptor审计日志实现
2014-12-29 15:21 1260@MappedSuperclass public abs ... -
tomcat热部署配置
2014-01-20 13:20 876在apache-tomcat-6.0.32\bin\ ... -
java图片打水印中文乱码,显示一个方框
2013-09-22 10:42 2441如上图红线标注的,第一个是个版权号,后面的就是两个中文文字 ... -
不使用synchronized模拟Single Threaded Execution Pattern
2013-07-15 22:28 841public class Gate { priva ... -
Java导出网页图片、Java导出图片、Java网页截图
2013-04-27 11:06 6048import java.io.File; import ... -
java 电话号码正则
2012-12-26 11:05 1218public interface RegExpConst { ... -
jxl下拉长度的问题,Validation list exceeds maximum number of characters - truncating
2012-12-03 16:55 2922warning: Validation list exceed ... -
用NPOI操作EXCEL--生成下拉列表
2012-12-03 11:26 1187http://www.cnblogs.com/atao/arc ... -
jsp数字分页
2012-10-29 17:31 3127<%@ tag pageEncoding="U ... -
Ajax请求Session超时的解决办法、servlet + jquery
2012-10-25 14:31 9635问题: 1. session超时了,客户端发出了一个ajax ... -
struts2文件下载中文名乱码
2012-08-09 17:03 1136public String getDownFileN ... -
获取今天距离指定时间还有几天几时几分几秒
2012-06-18 22:03 2457/** * 获取今天还剩下多少秒 * @retu ... -
java生成订单编号
2012-06-18 14:54 25776package ceshi; import java ... -
微博的图片文字水印处理方法
2012-05-11 10:34 1284import java.awt.Font; import j ... -
java获取今天还剩下多少秒
2012-04-30 22:51 4374/** * 获取今天还剩下多少秒 * @retu ... -
java jxl操作Excel
2012-04-28 17:50 1324package com.phluency.tpgroupbuy ... -
使用Java POI 解析EXCLE
2012-03-07 15:00 1706package com.ceshi; import ja ... -
java 半角全角互相转换
2011-07-12 13:31 11762/** * <PRE> * 提供对字符 ... -
Java、Js判断全角半角
2011-07-12 12:51 2004JS判断全角半角: function chkHalf(s ... -
java过滤敏感词,读配置文件/动态数据
2011-07-07 10:29 4263读取:properties 配置文件 import java ...
相关推荐
总的来说,使用ASP.NET实现用户注册邮箱激活的过程涉及到前端表单设计、后端数据处理、邮件发送以及URL路由等多个环节。每个环节都需要考虑用户体验和安全性,确保用户数据的完整性和隐私。通过以上步骤,我们可以...
这个激活码被嵌入到一个链接中,通过SMTP(Simple Mail Transfer Protocol)服务发送到用户提供的邮箱。 3. **邮件内容**:邮件通常包含欢迎信息,以及一个“点击激活”链接。这个链接指向服务器上的一个特定URL,...
【注册邮箱激活验证Demo】是一个基于JSP/Servlet和JavaMail技术的应用实例,主要用于网站用户注册时的邮箱验证。在互联网应用中,邮箱验证是一种常见的安全机制,它确保用户提供的邮箱地址有效,并防止恶意注册。当...
总结一下,实现“PHP用户注册邮箱验证激活帐号”涉及以下步骤: 1. 创建用户注册表单并处理提交的数据。 2. 使用PHP连接MySQL数据库,安全地存储用户信息。 3. 通过SMTP发送带有激活码的邮件。 4. 实现`active.php`...
以下是对"PHP中注册邮箱激活源码"这一主题的详细阐述: 1. **邮箱验证流程**: - 用户在网站上填写注册表单,包括用户名、密码和邮箱地址。 - 服务器接收到数据后,通过PHP发送一封包含激活链接的邮件到用户提供...
总结起来,使用邮箱激活用户注册状态是Java Web应用程序中常用的一种安全策略,它通过邮箱验证确保用户的真实性和账户的安全性。在实现这一功能时,需要考虑数据验证、激活码生成、邮件发送、链接解析等多个环节,...
在这个“JavaMail - 注册邮箱激活源码”项目中,我们主要关注的是使用JavaMail进行用户注册时的邮箱验证功能。邮箱激活是一种常见的安全措施,用于确认用户提供的邮箱地址有效且属于用户本人。 首先,让我们深入...
标题“使用邮箱激活用户注册状态共3页.pdf.zip”暗示了一份文档,可能详细介绍了如何通过邮箱验证来激活用户的注册状态。这份文档可能分为三个部分,全面地涵盖了该主题。 首先,邮箱激活的主要目的是确认用户的...
本项目“Vue结合SpringBoot注册发送邮件激活”旨在实现用户注册时通过电子邮件验证其身份的功能,这在很多网站中是常见的安全措施。下面将详细解释实现这一功能的关键步骤和技术要点。 1. **Vue.js 前端**: - **...
关于账户激活,通常会在用户注册时生成一个唯一的激活码,将其存储在数据库中并与用户的邮箱关联。邮件中包含这个激活码,用户点击链接或输入激活码后,通过服务器验证激活码的有效性,完成账户激活流程。 在实际...
在IT行业中,邮箱激活账号是一种常见的用户注册流程,它增强了网站的安全性,防止恶意注册和垃圾信息。在ASP(Active Server Pages)环境下,我们可以利用C#语言来实现这一功能。以下将详细介绍如何通过ASP和C#来...
在实现邮箱激活功能时,我们主要用到的是发送邮件的部分。通过配置SMTP服务器的信息,如主机地址、端口号、用户名和密码,我们可以使用JavaMail创建一个会话,并通过该会话发送带有激活链接的邮件。例如: ```java ...
PHP激活用户注册验证邮箱本文将结合实例介绍如何使用PHP+Mysql完成注册帐号、发送激活邮件、验证激活帐号、处理URL链接过期的功能
从给定的代码片段来看,这段代码展示了如何使用C#语言和.NET框架实现邮件发送功能,以完成注册后的邮箱激活步骤。下面将逐行解析这段代码的关键部分: #### 邮件构造与编码设置 - 第06行:设置邮件编码为GB2312,以...
本项目"Java Web+Mysql实现邮箱激活注册的用户"提供了一种安全且有效的用户注册机制,通过邮箱验证确保用户的真实性。下面将详细介绍这个项目的相关知识点。 1. **Java Web基础**: - **Servlet**:Java Web的核心...
标题“ssm注册邮件激活”指的是使用Spring、SpringMVC和MyBatis(SSM)这一经典的Java web开发框架组合,实现用户注册时通过电子邮件验证激活账号的功能。这个功能是许多网站为了确保用户的真实性以及避免恶意注册而...
- 发送激活邮件:系统通过SMTP(Simple Mail Transfer Protocol)或其他邮件服务API(如Google的Gmail API或SendGrid)发送一封包含激活链接的邮件到用户的邮箱。 - 激活链接:链接通常包含一个唯一的令牌或ID,与...
VS2008+SQL2005 C# 实现用户注册后用邮箱激活登陆程序。
3. 邮件发送:在用户注册成功后,我们需要使用SMTP协议通过邮件服务发送一封包含激活链接的邮件。激活链接中会包含用户的ID和激活码,例如:`http://yourwebsite.com/activate?userId=123&activationCode=abc123`。...