• 让创新无法想象。咨询热线:022-60709568
  • 关注我们

使用javaMail进行腾讯,新浪,网易网上邮箱验证

阅读:1015 2019-03-20 14:08:24 来源:新网

最近本人在开发web项目中,使用到了javamail来进行邮箱验证。最初刚接触javamail开发的时候,本人搜索很多有关这方面的知识和案例,比如慕课网上的课程,但那些都只是针对本地邮箱服务器或者单个网上邮箱服务器的案例,不能解决向多种格式的邮箱账号发送邮件的功能。在一番琢磨之后,本人终于实验成功,在这里也分享给各位,希望对没有接触过javamail开发的小伙伴们提供一点帮助。

javamail的开发通常只需要引入一个mail.jar包就ok了,jar包可以去下载javamail的api解压之后得到,非常简单,推荐下载高版本的api,例如1.4.7版本的,因为有些低版本的不支持mailsslsocketfactory,不能进行qq邮箱的使用。

ok,准备工作做完,接下来就是上代码啦!

importjava.util.properties;

importjavax.mail.authenticator;

importjavax.mail.message;

importjavax.mail.passwordauthentication;

importjavax.mail.session;

importjavax.mail.transport;

importjavax.mail.internet.internetaddress;

importjavax.mail.internet.mimemessage;

importjavax.mail.internet.mimemessage.recipienttype;

importcom.sun.mail.util.mailsslsocketfactory;

publicclassmailutil{

publicstaticbooleansendmail(stringto,stringcode)throwsexception{

//1.判断一下输入的邮箱账号是否符合规范,不符合规范就直接返回false

//这里列出了qq,网易,新浪的三种邮箱规范,需要向其他格式的邮箱发送邮件的话就在判断中添加即可

if(!(to.split("@")[1].equals("qq.com")

||to.split("@")[1].equals("163.com")

||to.split("@")[1].equals("sina.com")

||to.split("@")[1].equals("sina.cn")

||to.split("@")[1].equals("2008.sina.com")

||to.split("@")[1].equals("51uc.com"))){

returnfalse;

}

//1.创建连接对象,连接到邮箱服务器

propertiesprops=newproperties();

//开启debug调试

props.setproperty("mail.debug","true");

//发送服务器需要身份验证

props.setproperty("mail.smtp.auth","true");

//发送邮件协议名称

props.setproperty("mail.transport.protocol","smtp");

sessionsession=null;

//设置邮件服务器主机名

//发送邮件的邮箱如果是qq邮箱,值就是"smtp.qq.com",如果是网易邮箱,值就是"smtp.163.com",同理,新浪就是"smtp.sina.com",这里用qq邮箱做示例。

props.setproperty("mail.smtp.host","smtp.qq.com");

//qq邮箱不同于其它两种邮箱,它的使用需要进行ssl加密,以下4行代码只有使用qq邮箱才用上

mailsslsocketfactorysf=newmailsslsocketfactory();

sf.settrustallhosts(true);

props.put("mail.smtp.ssl.enable","true");

props.put("mail.smtp.ssl.socketfactory",sf);

//同时,这儿设置的邮箱密码qq邮箱也是与其它两者不同的。我们知道,进行javamail开发首先要对发件邮箱进行设置,需要在邮箱设置中允许stmp/pop3的使用。//而qq邮箱则在你开启stmp/pop3使用的时候会给予你一个授权码,那才是真正在邮箱开发中使用的邮箱密码。(不得不说老马保密工作还是一流)

session=session.getinstance(props,newauthenticator(){

protectedpasswordauthenticationgetpasswordauthentication(){

returnnewpasswordauthentication(

"你的邮箱账号",

"你的邮箱密码");

}

});

//2.创建邮件对象

messagemessage=newmimemessage(session);

//2.1设置发件人:

message.setfrom(newinternetaddress("你的邮箱账号"));

//2.2设置收件人:

message.setrecipient(recipienttype.to,newinternetaddress(to));

//2.3设置邮件的主题

message.setsubject("来自******的激活邮件");

//2.4设置邮件的正文

message.setcontent(

"

你可能感兴趣
推荐阅读
推荐商标

分享