Java邮箱

该博客介绍了如何利用Spring Boot的spring-boot-starter-mail依赖来实现邮箱登录、注册和找回密码的功能。通过配置YML文件设置SMTP服务器,并使用Redis存储数据。在Controller和Service层分别展示了如何发送邮件,包括设置发件人、收件人、主题、正文和验证码。邮件发送过程简单易懂,适用于基础的邮箱验证场景。
摘要由CSDN通过智能技术生成

java mail

** 实现邮箱登录,注册,找回密码等功能,对此进行总结 **
** 这里的没有对数据库存储,而是使用redis进行存储,关于redis会在下节课总结**

引入

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

使用

我习惯于将Email发送封装在utils中,读者可以对应的进行修改

先配置yml的mail格式

  mail:
  #    protocol: smtps  网易163 为 smtps  qq为smtp
    protocol: smtps
    # 配置 SMTP 服务器地址
    host: smtp.163.com
    # 发送者邮箱
    #    username:
    username: zzac0420@163.com
    # 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
    password: BXWPKCLJQILSAGPJ
    # 端口号465或587
    #    port: 465
    port: 465
    # 默认的邮件编码为UTF-8
    default-encoding: UTF-8

首先是controller层

package com.kob.backend.controller.Utils;
import java.util.Map;

@RestController
@AllArgsConstructor
@RequestMapping("/api/utils")
public class UtilsController {

    private final UtilsService utilsService;

    @GetMapping("email")
    public Map<String,String> sendEmail(@RequestParam Map<String,String> map){
        String email = map.get("email");
        return utilsService.sendEmail(email);
    }
}

这里传入的是收件人的邮箱地址

其次是service层

package com.kob.backend.service.impl.utils

import java.util.concurrent.ThreadLocalRandom;

@Service
public class UtilsService {
    @Autowired
    private JavaMailSender javaMailSender;
    public Map<String,String> sendEmail(String email){
        Date now = new Date();
        String code = String.valueOf(ThreadLocalRandom.current().nextInt(100000, 1000000)); // 随机一个 4位长度的验证码  使用线程安全的随机生成器
        System.out.println(code);
        SimpleMailMessage message=new SimpleMailMessage();
        
        message.setFrom("zzac0420@163.com");  // 发送人
        message.setTo(email);
        message.setSentDate(now);
        message.setSubject("【ZZAC Of Game】登录邮箱验证");
        message.setText("您本次登录的验证码是:" + code + ",有效期5分钟");
        javaMailSender.send(message);
        Map<String,String> map = new HashMap<>();
        map.put("error_message" ,"success");
        return map;
    }
}

需要注意的就是需要加入setFrom 为 yml 中设置的发送人的邮箱

还有其他配置可以自行百度,这里不再赘述,简单的应用了一下java邮箱的发送,作为记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值