700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java实现发送qq邮箱验证码

java实现发送qq邮箱验证码

时间:2023-07-25 02:57:37

相关推荐

java实现发送qq邮箱验证码

1、登录qq邮箱,开启POP3/SMTP服务

路径:qq邮箱--->设置---->选择账户----> 打开

按照要求发送短信后得到授权码

得到授权码后要记得点击确定,页面拉到最下方点击保存设置。

2、pom.xml加入依赖

<dependency><groupId>mons</groupId><artifactId>commons-email</artifactId><version>1.5</version></dependency>

加入后会自动加载其他两个相关依赖

3、测试类(两种发送方式都测试成功了)

package com.ymo;import java.security.GeneralSecurityException;import java.util.Properties;import java.util.Random;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import mons.mail.EmailException;import mons.mail.HtmlEmail;import org.junit.Test;import com.sun.mail.util.MailSSLSocketFactory;public class EmalTest {String yzm;@Testpublic void send() {yzm = random1();try {//HtmlEmail方式//sendEmail();//javax.mail方式sendMail("XXX@", "XXX", "XXX@", "测试", "<html><h1>我的验证码:"+yzm+"</h1></html>");} catch (MessagingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (GeneralSecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 方式1:发送QQ邮件*/public void sendEmail() {HtmlEmail send = new HtmlEmail();//创建一个HtmlEmail实例对象// 获取随机验证码 String resultCode = yzm; try { send.setHostName(""); send.setAuthentication("XXX@", "XXX"); //第一个参数是发送者的QQEamil邮箱 第二个参数是刚刚获取的授权码send.setFrom("XXX@", "orison有限公司");//发送人的邮箱为自己的,用户名可以随便填 记得是自己的邮箱不是qq//send.setSmtpPort(465); //端口号 可以不开 send.setSSLOnConnect(true); //开启SSL加密 send.setCharset("utf-8");send.addTo("XXX@"); //设置收件人 email为你要发送给谁的邮箱账户 send.setSubject("测试测试"); //邮箱标题 send.setMsg("HelloWorld!<font color='red'>您的验证码:</font> " + resultCode + " ,五分钟后失效"); //Eamil发送的内容send.send(); //发送 } catch (EmailException e) { e.printStackTrace(); } } /**方式2:发送QQ邮件* @param sender 发送方的邮箱* @param auth qq邮箱中申请的16位授权码* @param to 接收人邮箱* @param title 邮件标题* @param content 邮件内容* */public static void sendMail(String sender,String auth,String to,String title,String content) throws MessagingException, GeneralSecurityException, javax.mail.MessagingException {//创建一个配置文件并保存Properties properties = new Properties();properties.setProperty("mail.smtp.socketFactory.class", ".ssl.SSLSocketFactory");properties.setProperty("mail.smtp.socketFactory.fallback", "false");properties.setProperty("mail.smtp.port", "465");properties.setProperty("mail.smtp.socketFactory.port", "465");properties.setProperty("mail.host","");properties.setProperty("mail.transport.protocol","smtp");properties.setProperty("mail.smtp.auth","true");//QQ存在一个特性设置SSL加密MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);properties.put("mail.smtp.ssl.enable", "true");properties.put("mail.smtp.ssl.socketFactory", sf);//创建一个session对象Session session = Session.getDefaultInstance(properties, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(sender,auth);}});//开启debug模式session.setDebug(true);//获取连接对象Transport transport = session.getTransport();//连接服务器transport.connect("",sender,auth);//创建邮件对象MimeMessage mimeMessage = new MimeMessage(session);//邮件发送人mimeMessage.setFrom(new InternetAddress(sender));//邮件接收人mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(to));//邮件标题mimeMessage.setSubject(title);//邮件内容mimeMessage.setContent(content,"text/html;charset=UTF-8");//发送邮件transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients());//关闭连接transport.close();}//生成6位数 验证码public static String random1(){String code = "";Random rd=new Random();for (int i = 0; i < 6; i++) {int r = rd.nextInt(10); //每次随机出一个数字(0-9)code = code + r; //把每次随机出的数字拼在一起}System.out.println(code);return code;} }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。