资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

java给邮箱发送验证码

Java 更新时间: 发布时间: 计算机考试归档 最新发布

java给邮箱发送验证码

邮箱发送信息需要用到邮箱授权码 

获取qq邮箱授权码方式:

邮箱——>设置——>账户——>往下拖到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务——>获取授权码

  

引入依赖

                    org.apache.commons            commons-email            1.5        

工具类:(测试过两种方式都可以,随意哪种)

package com.kgc.ymw.util;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 com.sun.mail.util.MailSSLSocketFactory;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.HtmlEmail;import org.junit.jupiter.api.Test;@SuppressWarnings({"all"})public class EmailTest {    private static String yzm;    @Test    public void send1() {        String email = "xxxxxx@qq.com";//接收人邮箱        //HtmlEmail方式        sendEmail(email);    }    @Test    public void send2() {//        yzm = random1();        try {            //javax.mail方式(发送方的邮箱,qq邮箱中申请的16位授权码,接收人邮箱,邮件标题,邮件内容)            sendMail("xxxx@qq.com", "授权码", "xxxxxx@qq.com", "名称", "

邀请您注册验证码:" + yzm + "

"); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (GeneralSecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static String sendEmail(String email) { HtmlEmail send = new HtmlEmail();//创建一个HtmlEmail实例对象 // 获取随机验证码 yzm = random1(); String resultCode = yzm; try { send.setHostName("smtp.qq.com"); send.setAuthentication("xxxxx@qq.com", "邮箱授权码"); //第一个参数是发送者的QQEamil邮箱 第二个参数是刚刚获取的授权码 send.setFrom("xxxxxx@qq.com", "名称");//发送人的邮箱为自己的,用户名可以随便填 记得是自己的邮箱不是qq// send.setSmtpPort(465); //端口号 可以不开 send.setSSLOnConnect(true); //开启SSL加密 send.setCharset("utf-8"); send.addTo(email); //设置收件人 email为你要发送给谁的邮箱账户 send.setSubject("标题"); //邮箱标题 send.setMsg("您的验证码为: " + resultCode + " ,五分钟后失效"); //Eamil发送的内容 send.send(); //发送 } catch (EmailException e) { e.printStackTrace(); } return yzm; } public static String sendMail(String sender, String auth, String to, String title, String content) throws MessagingException, GeneralSecurityException, javax.mail.MessagingException { yzm = random1(); //创建一个配置文件并保存 Properties properties = new Properties(); properties.setProperty("mail.smtp.socketFactory.class", "javax.net.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", "smtp.qq.com"); 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() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(sender, auth); } }); //开启debug模式 session.setDebug(true); //获取连接对象 Transport transport = session.getTransport(); //连接服务器 transport.connect("smtp.qq.com", 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(); return yzm; } //生成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; }}
转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1095478.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【java给邮箱发送验证码】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2