{{ v.name }}
{{ v.cls }}类
{{ v.price }} ¥{{ v.price }}
,最近发现书店项目中没有忘记密码的找回功能,于是决定学习相关知识,但是今天一下午也只会在本地邮件服务器上通过某一账号给本地另一个账号发送邮件,并不能发送到qq邮箱或者是163邮箱里面,原因目前还不太清楚,后面再去慢慢了解吧。对于目前的需求我是希望点击忘记密码之后跳出填写邮箱账号的页面,在页面中输入自己的邮箱账号,确定后系统判断数据库中是否存在该邮箱,如果存在则发送6位随机数组成的验证码给该账号,跳转到输入验证码的页面,否则提示邮箱不存在,若验证码正确则跳转到重置密码的页面,否则给出提示,留在输入邮箱的页面。首先安装邮箱服务器,和foxmail邮箱管理软件,最后一个jar包是放到项目下面的,只需要把里面的jar文件拷过去了行了。这两个软件在网上都很容易下载到的,安装的过程都是直接下一步,首先需要在工具里面的服务器设置设置一下域名,选择单域名meetbookstore.com,然后在本地服务器上添加两个账号user01@meetbookstore.com和system@meetbookstore.com,完了之后邮箱服务器不能关闭就像tomcat服务器一样要处于打开状态,然后在foxmail的账号管理中添加这两个账号,服务器地址都填localhost其它默认。可以尝试用一个账号给另一个账号发送邮件。然后就可以编写发送邮件的方法了
//发送邮件/****@paramto:目的邮箱地址*@paramcode:邮件的验证码*@throwsmessagingexception*@throwsaddressexception*/publicstaticvoidsend(stringto,intcode)throwsexception{//1、创建连接对象,连接到邮件服务器propertiesprops=newproperties();sessionsession=session.getinstance(props,newauthenticator(){@overrideprotectedpasswordauthenticationgetpasswordauthentication(){//todoauto-generatedmethodstubreturnnewpasswordauthentication("system@meetbookstore.com","111");}});//2、创建邮件对象messagemessage=newmimemessage(session);//设置发件人message.setfrom(newinternetaddress("system@meetbookstore.com"));//设置收件人message.setrecipient(recipienttype.to,newinternetaddress(to));//设置邮件的主题message.setsubject("来自遇见书屋的验证邮件");//设置邮件正文,内容,文件类型message.setcontent("
注意引入的类出现相同类名的都选择下面的mail那一个
importjava.util.properties;importjava.util.random;importjavax.mail.authenticator;importjavax.mail.message;importjavax.mail.message.recipienttype;importjavax.mail.messagingexception;importjavax.mail.passwordauthentication;importjavax.mail.session;importjavax.mail.transport;importjavax.mail.internet.addressexception;importjavax.mail.internet.internetaddress;importjavax.mail.internet.mimemessage;
然后编写测试方法
publicstaticvoidmain(string[]args)throwsexception{randomrandom=newrandom();intnum=math.abs(random.nextint());num=num%900000+100000;send("user01@meetbookstore.com",num);}