博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用java实现邮件发送验证码
阅读量:5041 次
发布时间:2019-06-12

本文共 2549 字,大约阅读时间需要 8 分钟。

java实现邮件发送验证码

   建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SMTP服务没弄好。所以建议注册个别的邮箱,我就申请了个网易163邮箱瞬间就好了。所以去申请个别的邮箱吧。

  用邮件发送验证码,首先需要jar包。我写的代码只需要mail.jar,没有的话可以给我留言,我给你发个。

废话不说了直接上代码(这个代码就是个工具类直接用就好)

package com.itheima.utils;import java.util.Properties;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.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMessage.RecipientType;public class MailUtils {    public static void sendMail(String email, String emailMsg) throws AddressException, MessagingException {        // 1.创建一个程序与邮件服务器会话对象 Session        // 创建参数配置, 用于连接邮件服务器的参数配置        Properties props = new Properties(); // 参数配置         props.setProperty("mail.transport.protocol", "SMTP");// 使用的协议(JavaMail规范要求)        props.setProperty("mail.host", "smtp.163.com");// // 发件人的邮箱的 SMTP 服务器地址        props.setProperty("mail.smtp.auth", "true");//请求认证,参数名称与具体实现有关 指定验证为true        // 创建验证器        Authenticator auth = new Authenticator() {            @Override            public PasswordAuthentication getPasswordAuthentication() {                // 网易邮箱Yang_li_g 用户名 hao123授权码,改为自己的账号和密码                return new PasswordAuthentication("Yang_li_g", "hao123");            }        };        Session session = Session.getInstance(props, auth);        // 2.创建一个Message,它相当于是邮件内容        Message message = new MimeMessage(session);        //这里也要改和上面对应,注意后缀和上面设置的一样不然会报错        message.setFrom(new InternetAddress("Yang_li_g@163.com")); // 设置发送者        message.setRecipient(RecipientType.TO, new InternetAddress(email)); // 设置发送方式与接收者        message.setSubject("用户激活");        // message.setText("这是一封激活邮件,请点击");        message.setContent(emailMsg, "text/html;charset=utf-8");        // 3.创建 Transport用于将邮件发送        Transport.send(message);    }}

这里是servlet的代码,响应代码如下

// 发送激活邮件    activeCode:是验证码        String emailMsg = "恭喜您注册成功,请点击下面的连接进行激活账户" + "" + "http://localhost:8080/Shop/active?activeCode=" + activeCode + "";        try {            //user.getEmail()  :是注册人的邮件用户名            MailUtils.sendMail(user.getEmail(), emailMsg);        } catch (MessagingException e) {            e.printStackTrace();        }

邮件内容你就自己随便写,我这里写的比较简单,实现就好。

网易邮箱开通POP3/SMTP服务的步骤

先点击设置--》POP3/SMTP/IMAP---》找到开启的选项点击开启---》开启成功后设置密码就好了

这里写图片描述

这里写图片描述

我这是设置好的可以看下。设置好了后就可以实现用邮件发验证码了。

转载于:https://www.cnblogs.com/yangliguo/p/7505780.html

你可能感兴趣的文章
C语言键盘按键列表
查看>>
Codeforces Round #374 (Div. 2)
查看>>
oracle数据类型
查看>>
socket
查看>>
Vue中使用key的作用
查看>>
二叉索引树 树状数组
查看>>
日志框架--(一)基础篇
查看>>
Java设计模式之原型模式
查看>>
Spring学习(四)-----Spring Bean引用同xml和不同xml bean的例子
查看>>
哲理故事与管理之道(20)-用危机激励下属
查看>>
关于源程序到可运行程序的过程
查看>>
wepy的使用
查看>>
搭建项目Maven+springMVC+hibernate时,JUnit測试出现报ClassNotFoundException错误的解决
查看>>
【设计模式】工厂方法模式
查看>>
JWPlayer使用方法
查看>>
UESTC 电子科大专题训练 数据结构 D
查看>>
Codeforces 501C
查看>>
Linux 下 ---ThinkPHP 图片上传提示:上传根目录不存在!请尝试手动创建
查看>>
spring mvc常用注解标签
查看>>
DOS循环 for命令
查看>>