spring boot整合发邮件

简介: spring boot整合发邮件

文章目录


代码展示

导入依赖

增加配置类yml

service接口

service实现

manager增加SendMail类

controller


代码展示


导入依赖


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


增加配置类yml


mail:
    host: smtp.qq.com
    port: 587
    username: 写qq邮箱
    password: 在qq邮箱设置>账户>开启POP3/SMTP服务时获得
    default-encoding: UTF-8
    properties:
      smtp:
        socketFactoryClass: javax.net.ssl.SSLSocketFactory
      debug: true


service接口


 /**
     * 发送邮件
     * @param email 邮箱
     * @param session session会话
     * @return boolean
     */
    boolean sendMail(String email, HttpSession session);


service实现


 @Autowired
    protected SendMail sendMail;
 @Override
    public boolean sendMail(String email, HttpSession session) {
        String code = sendMail.sendSimpleMail(email);
        session.setAttribute("code",code);
        System.out.println(code);
        QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
        wrapper.inSql("id","select id from tab_member where member_mail= "+"\""+email+"\"");
        UserBean user = userMapper.selectOne(wrapper);
        session.setAttribute("password",user.getMemberPassword());
        return code != null;
    }

manager增加SendMail类


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.Random;
/**
 * @Author: Ljx
 * @Date: 2021/5/22 9:24
 */
@Component
public class SendMail {
    @Autowired
    JavaMailSender javaMailSender;
    int max = 99999;
    int min = 10000;
    Random random = new Random();
    public String sendSimpleMail(String email){
        int s = random.nextInt(max-min+1) + min;
        String code = String.valueOf(s);
        SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject("找回密码");
        message.setFrom("写qq邮箱");
        message.setTo(email);
        message.setSentDate(new Date());
        message.setText("你的验证码是:"+code);
        javaMailSender.send(message);
        return code;
    }
}

controller


 @PostMapping("/sendEmail")
    @ApiOperation(value = "发送验证码", notes = "邮箱不能为空", httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "email",
                    value = "邮箱", required = true, dataType = "String"),
    })
    public RespBean sendEmail(String email, HttpSession session){
        boolean judgment = iUserService.sendMail(email,session);
        if (judgment){
            String returnCode = (String) session.getAttribute("code");
            logger.info("发送验证码成功");
            return RespBean.ok("发送验证码成功",returnCode);
        }else{
            logger.error("发送验证码失败");
            return RespBean.error("发送验证码失败");
        }
    }


相关文章
|
10月前
|
数据采集 人工智能 智能设计
《人工智能:解锁新材料最佳掺杂元素及比例的密码》
在新材料研发中,确定最佳掺杂元素及比例充满挑战。传统方法依赖经验与试错,耗时且成本高。人工智能(AI)的介入带来了转机:通过分析海量数据、模拟材料行为和优化实验设计,AI能精准预测掺杂效果,减少盲目实验。尽管面临数据质量和模型解释性的挑战,AI仍显著提升新材料研发的效率与准确性,推动多个领域的性能突破,引领智能设计驱动的新材料时代。
231 5
|
12月前
|
存储 开发框架 监控
一个轻量级的实时监控工具---WatchDog
一个轻量级的实时监控工具---WatchDog
298 0
|
IDE 开发工具 Windows
手把手教你调整电脑磁盘的分区大小
手把手教你调整电脑磁盘的分区大小
1454 0
手把手教你调整电脑磁盘的分区大小
|
人工智能 自然语言处理 运维
AI中台助力企业智能化转型
本文主要和大家分享 “AI中台如何助力企业数字化以及智能化转型”,以及我在构建 AI中台方面的一些心得和经验。
AI中台助力企业智能化转型
|
存储 Java Devops
【云原生-DevOps】企业级DevOps平台搭建及技术选型-CICD篇(二)
【云原生-DevOps】企业级DevOps平台搭建及技术选型-CICD篇(二)
513 0
【云原生-DevOps】企业级DevOps平台搭建及技术选型-CICD篇(二)
|
存储 数据采集 监控
商用车管理服务平台 DAAS+SAAS开放平台,实现物流数字化高效转型
商用车从 18 年开始,经历了从 2G 到 4G 的发展,从以前只有车辆定位,发展到如今具备 ADAS+DMS 管理功能的摄像头以及各种传感设备。
2941 0
商用车管理服务平台    DAAS+SAAS开放平台,实现物流数字化高效转型
【系统概念】容错、高可用和灾备
容错,高可用、灾备这三个词的使用环境极易被混淆。很多时候以为这三个词的意思是相同的。
514 0
【系统概念】容错、高可用和灾备
|
SQL 数据采集 分布式计算
电商热门商品统计
针对常规电商网站进行大数据分析,通过完整大数据处理流程最终对每个区域热门商品进行统计,支持用户决策。
455 0
电商热门商品统计
|
存储 运维 NoSQL
JumpServer 堡垒机
JumpServer 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。
846 0
JumpServer 堡垒机
|
机器学习/深度学习 人工智能 智能设计
内容推荐场景中自监督学习的应用
内容推荐场景中自监督学习的应用
575 0
内容推荐场景中自监督学习的应用