精华内容
下载资源
问答
  • 主要介绍了SpringBoot发送邮箱验证码功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 主要为大家详细介绍了springboot实现邮箱验证码功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 1、在application.yml中配置: 2、控制层使用: @RequestMapping("/sendMail") String sendMail(@RequestParam String mail) ...//随机生成四位验证码,可根据自己需要写生成验证码函数 message.setSubject("Wan

    1、在application.yml中配置:

    在这里插入图片描述

    2、控制层使用:

    @RequestMapping("/sendMail")
    String sendMail(@RequestParam String mail)
    {
        SimpleMailMessage message = new SimpleMailMessage();
        number  = RandomNumber.getCode();//随机生成四位验证码,可根据自己需要写生成验证码函数
        message.setSubject("WanDerIngcc的博客 注册验证码");//设置主题
        message.setText("注册验证码为:"+ number + "     请勿告诉他人!!!");//正文
        message.setFrom("xxxx@qq.com");
        message.setTo(mail);
        mailSender.send(message);
        return "success";
    }
    
    展开全文
  • 开启QQ邮箱服务 (1)登陆QQ找到设置,点击账户 (2)往下拉,开启POP3/SMTP服务和IMAP/SMTP服务 当开启IMAP/SMTP会有一串密文密码,保存起来后面要用到 二.spring boot配置邮箱服务 (1)在pom.xml文件中导入...

    一.开启QQ邮箱服务

    (1)登陆QQ找到设置,点击账户
    在这里插入图片描述
    (2)往下拉,开启POP3/SMTP服务和IMAP/SMTP服务在这里插入图片描述

    当开启IMAP/SMTP会有一串密文密码,保存起来后面要用到

    二.spring boot配置邮箱服务

    (1)在pom.xml文件中导入支持邮箱依赖

    <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-mail</artifactId>
     </dependency>
    

    (2)在spring boot的配置文件application.yml中添加以下配置

    spring:
      mail:
        username: 196...85@qq.com
        password: yq...fchj
        host: smtp.qq.com
    

    password是在开启邮箱服务的时候得到的密文密码

    三.代码编写

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class ExchangeOfLearningPlatformApplicationTests {
        @Autowired
        JavaMailSenderImpl mailSender;
        private String emailServiceCode;
    
        public void test(){
            emailServiceCode = "1234";
            SimpleMailMessage message = new SimpleMailMessage();
            message.setSubject("注册验证码");
            message.setText("注册验证码是:" + emailServiceCode);
            message.setFrom("1111111111@qq.com");
            mailSender.send(message);
        }
    }
    

    代码说明:
    创建一个简单的邮件对象:SimpleMailMessage message = new SimpleMailMessage();
    设置邮件标题:message.setSubject();
    设置文件内容:message.setText();
    设置收件邮箱:message.setFrom();
    发送邮件:mailSender.send(message);

    展开全文
  • //验证码 DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "XXXXXXXX", "XXXXXXXXXX"); IAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest...
  • SpringBoot邮箱验证码,图片)(pom.xml文件添加依赖)1.配置pom.xml文件2.配置application.properties3.编写代码 1.配置pom.xml文件 <dependency> <groupId>org.springframework.boot</...

    SpringBoot邮箱(验证码,图片)(pom.xml文件添加依赖)

    1.配置pom.xml文件

    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-mail</artifactId>
    		</dependency>
    

    切记依赖加入在下列代码段中

    <dependencies>
    //
    //
    </dependencies>
    

    重新加载maven依赖
    在这里插入图片描述

    2.配置application.properties

    #配置邮件消息
    spring.mail.host=smtp.qq.com
    #发送邮件者信箱(也就是你申请POP3/SMTP服务的QQ号)
    spring.mail.username=*********@qq.com
    #申请PO3/SMTP服务时,给我们的邮箱的授权码
    spring.mail.password=kfhmfumnnchdbjbj
    spring.mail.default-encoding=UTF-8
    spring.mail.port=465
    spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
    spring.mail.properties.mail.debug=true
    

    可以去邮箱主页申请PO3/SMTP服务时,给我们的邮箱的授权码

    3.编写代码

    try {
                    MimeMessage mimeMessage = this.mailSender.createMimeMessage();
                    MimeMessageHelper message = new MimeMessageHelper(mimeMessage,true,"utf-8");
                    message.setFrom("******@qq.com","商品信息管理系统");//设置授权了的qq邮箱,并且重命名发件人用户名
                    String email=zhuce.getEmailaddress();	//补全收件人地址(zhuce.getEmailaddress()为方法调用,可直接使用string类型”****@qq.com”)
                    message.setTo(email);//设置收件人
                    message.setSubject("用户注册验证码服务");	//设置标题 
                  
                    message.setText("<html>尊敬的用户您好!\n您本次注册的验证码是:"+zhuce.code1+"<body><img src='cid:spittleLogo'></body></html>",true);//html格式
                    ClassPathResource image=new ClassPathResource("templates/collateral/1.jpg");//添加本地图片地址需要把它放在资源包里
                    message.addInline("spittleLogo", image);//cid=spittleLogo
                    this.mailSender.send(mimeMessage);
                    return "zhuce";//返回自己写的html界面可以没有
                } catch (Exception var3) {
                    var3.printStackTrace();
                    return "codeDefault2";//返回自己写的html界面,也可以没有
                }
    

    切记要放在包里不然找不到位置
    在这里插入图片描述

    展开全文
  • 使用springboot实现邮箱验证码功能

    万次阅读 热门讨论 2018-12-03 15:57:10
    我这边使用的QQ邮箱 1、首先创建maven项目,配置pom文件 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xmlns="http://maven.apache.org/POM/4.0.0" ...

    我这边使用的QQ邮箱

    1、首先创建maven项目,配置pom文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    
    	<groupId>com.example</groupId>
    	<artifactId>springbootdemo</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>jar</packaging>
    
    	<name>springbootdemo</name>
    	<description>Demo project for Spring Boot</description>
    
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>2.0.4.RELEASE</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    
    	<properties>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    		<java.version>1.8</java.version>
    	</properties>
    
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.mybatis.spring.boot</groupId>
    			<artifactId>mybatis-spring-boot-starter</artifactId>
    			<version>1.3.2</version>
    		</dependency>
    		<!--邮件发送核心包-->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-mail</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>commons-io</groupId>
    			<artifactId>commons-io</artifactId>
    			<version>2.4</version>
    		</dependency>
    		<dependency>
    			<groupId>mysql</groupId>
    			<artifactId>mysql-connector-java</artifactId>
    			<scope>runtime</scope>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-thymeleaf</artifactId>
    		</dependency>
    		<dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
            </dependency>
    
    		<!--mybatis分页插件-->
    		<dependency>
    			<groupId>com.github.pagehelper</groupId>
    			<artifactId>pagehelper</artifactId>
    			<version>4.1.6</version>
    		</dependency>
    
    
    	</dependencies>
    
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    		<resources>
    			<resource>
    				<directory>src/main/java</directory>
    					<includes>
    						<include>**/*.xml</include>
    					</includes>
    			</resource>
    		</resources>
    	</build>
    
    </project>
    

    2、配置springboot,我这里使用的是properties方式

    #配置Mybatis别名和扫描包
    mybatis.type-aliases-package=com.demo.bean
    mybatis.mapper-locations=classpath:mapper/*.xml
    
    #数据库相关
    spring.datasource.url=jdbc:mysql://localhost:3306/ssm?useSSL=false
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    
    #配置日志
    logging.level.root=info
    logging.level.com.demo.mapper=debug
    
    #配置视图前缀和后缀
    spring.mvc.view.prefix=/
    spring.mvc.view.suffix=.html
    
    #邮件发送配置
    spring.mail.default-encoding=UTF-8
    spring.mail.host=smtp.qq.com
    spring.mail.username=你的邮箱
    spring.mail.password=邮箱授权码
    spring.mail.properties.mail.smtp.auth=true
    spring.mail.properties.mail.smtp.starttls.enable=true
    spring.mail.properties.mail.smtp.starttls.required=true
    
    #thymeleaf配置
    spring.thymeleaf.mode=HTML5
    spring.thymeleaf.encoding=UTF-8
    spring.thymeleaf.servlet.content-type=text/html
    spring.thymeleaf.cache=false

    邮箱授权码可以按以下方法获取

    打开QQ邮箱网页→设置→账户→POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务→开启POP3/SMTP服务,然后就能看到授权码了

    3、编写mailService

          ${spring.mail.username}是在properties中配置的属性,这里有一个方法,第一个是发送普通邮件,第二个是发送带有附件的邮件

    @Service("mailService")
    public class MailService {
        @Value("${spring.mail.username}")
        private String from;
        @Autowired
        private JavaMailSender mailSender;
    
        Logger logger = LoggerFactory.getLogger(this.getClass());
    
        public void sendSimpleMail(String to,String title,String content){
            SimpleMailMessage message = new SimpleMailMessage();
            message.setFrom(from);
            message.setTo(to);
            message.setSubject(title);
            message.setText(content);
            mailSender.send(message);
            logger.info("邮件发送成功");
        }
    
        public void sendAttachmentsMail(String to, String title, String cotent, List<File> fileList){
            MimeMessage message = mailSender.createMimeMessage();
            try {
                MimeMessageHelper helper = new MimeMessageHelper(message,true);
                helper.setFrom(from);
                helper.setTo(to);
                helper.setSubject(title);
                helper.setText(cotent);
                String fileName = null;
                for (File file:fileList) {
                    fileName = MimeUtility.encodeText(file.getName(), "GB2312", "B");
                    helper.addAttachment(fileName, file);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            mailSender.send(message);
            logger.info("邮件发送成功");
        }
    }

    4、编写controller

    @Controller
    public class MailController {
        @Autowired
        private MailService mailService;
    
        @RequestMapping("getCheckCode")
        @ResponseBody
        public String getCheckCode(String email){
            String checkCode = String.valueOf(new Random().nextInt(899999) + 100000);
            String message = "您的注册验证码为:"+checkCode;
            try {
                mailService.sendSimpleMail(email, "注册验证码", message);
            }catch (Exception e){
                return "";
            }
            return checkCode;
        }
    }

    5、编写页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册</title>
        <link rel="stylesheet" href="layui/css/layui.css">
        <script src="layui/layui.js"></script>
    </head>
    <body style="width: 100%;height: 100%;">
        <div style="margin-top: 15%;">
            <div class="layui-main" style="width: 700px;">
                <h1 style="text-align: center">请输入注册信息</h1>
                <form class="layui-form layui-form-pane">
                    <div class="layui-form-item">
                        <label class="layui-form-label">邮箱:</label>
                        <div class="layui-input-block">
                            <input id="email" type="email" name="username" class="layui-input" lay-verify="required"/>
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <label class="layui-form-label">密码:</label>
                        <div class="layui-input-block">
                            <input id="password" type="password" name="password" class="layui-input" lay-verify="required"/>
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <label class="layui-form-label">邮箱验证码:</label>
                        <div class="layui-input-block">
                            <input id="checkCode" type="text" name="checkCode" class="layui-input" lay-verify="required"/>
                            <button id="sendCheckCode" type="button" class="layui-btn layui-btn-normal">获取验证码</button>
                        </div>
                    </div>
                    <div class="layui-form-item">
                        <div class="layui-input-block">
                            <button class="layui-btn" lay-submit lay-filter="register">确认</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>
        <script>
            layui.use("form",function () {
                var form = layui.form;
                var $ = layui.$;
                
                form.on("submit(register)",function (data) {
                    var inputCheckCode = $("#checkCode").val();
                    if (inputCheckCode == checkCode){
                        $.ajax({
                            url:"/register",
                            type:"POST",
                            data:data.field,
                            async:false,
                            success:function (text) {
                                if ("ok" == text){
                                    layer.alert("注册成功",function () {
                                        window.location.href = "index.html";
                                    });
                                }else{
                                    layer.alert("注册失败");
                                }
                            }
                        });
                    } else{
                        layer.msg("验证码输入错误");
                    }
                    return false;
                });
    
                //验证码
                var checkCode = "";
    
                $("#sendCheckCode").click(function () {
                    var email = $("#email").val();
                    if (email == null || email == ""){
                        layer.msg("请输入邮箱!!!");
                        return;
                    }
                    var index = layer.open({
                        type:3,
                        content:"邮件发送中..."
                    });
    
                    $.ajax({
                        url:"/getCheckCode?email="+email,
                        type:"get",
                        success:function (text) {
                            if (text != null && text != ""){
                                layer.close(index);
                                layer.msg("已发送");
                                checkCode = text;
                                countDown();
                            } else{
                                layer.alert("获取失败,请重新获取")
                            }
                        }
                    });
                });
    
                var maxTime = 60;
                function countDown(){
                    if (maxTime == 0){
                        checkCode = "";
                        $("#sendCheckCode").removeClass("layui-btn-disabled");
                        $("#sendCheckCode").removeAttr("disabled")
                        $("#sendCheckCode").html("获取验证码");
                        maxTime = 60;
                    }else{
                        $("#sendCheckCode").attr("disabled","disabled");
                        $("#sendCheckCode").addClass("layui-btn-disabled");
                        form.render();
                        $("#sendCheckCode").html(maxTime+"秒后重新获取");
                        maxTime--;
                        setTimeout(countDown,1000);
                    }
                }
    
            });
        </script>
    </body>
    </html>

    6、测试

    邮件发送
    邮件发送
    发送成功
    收到邮件
    60s禁止重发

     

    展开全文
  • 第一步:引入jar包 第二步:开启邮箱服务 以QQ邮箱为例:登录邮箱-设置-账户-开启服务 开区服务后会收到一串密码(客户端授权码),类似:lxltermhwmembjbb。...至此,一个简单的发送邮箱验证码就写好了。 ...
  • 应用场景:用户输入邮箱注册时,发送验证码到用户邮箱验证码输入正确注册成功 需要添加的包:commons-email,javax.mail,activation <dependency> <groupId>org.apache.commons</groupId> <...
  • 主要为大家详细介绍了SpringBoot使用邮箱发送验证码实现注册功能实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • springboot 实现发送邮箱验证码

    千次阅读 2020-03-16 22:56:31
    这里使用的是QQ邮箱,其他邮箱类似。 1.获取授权码 进入QQ邮箱主页面,找到左上方设置 , 选择账户选项卡,往下拉看到 把第一项POP3/SMTP服务开启,然后按照他的步骤获取授权码,并且记录下来。 2.添加依赖 <...
  • springboot验证码重构

    2019-02-20 22:52:00
    考虑到有多种验证机制(例如:常见的图片验证码,手机短信验证码,邮箱验证码) 所以在项目中对验证码进行代码重构,使之更加的具有可扩展性,低耦合性,此项目基于springboot 1.首先Controller层 @RestController ...
  • SpringBoot实现邮箱发送验证码

    千次阅读 热门讨论 2019-02-04 18:11:10
    这里我们假设收件地址不是QQ邮箱,而是163邮箱,那么QQ邮箱就会将连接163的SMTP服务器,把邮件通过SMTP服务器转发到163邮箱的SMTP服务器,转发使用的协议也是SMTP。 3)收件人用户B通过登录163邮箱的账号,连接...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 161
精华内容 64
关键字:

springboot邮箱验证码

spring 订阅