springboot简单实现邮件功能

本文介绍了如何在SpringBoot项目中实现邮件功能,包括配置邮箱参数、编写工具类、发送验证码和复杂邮件如激活链接。详细步骤从准备邮箱服务到编写测试方法一应俱全。
摘要由CSDN通过智能技术生成

简单实现发送邮件的小功能

1.准备

需要一个邮箱,并开启POP3/IMAP/SMTP服务。
以QQ邮箱为例,邮箱设置-账户,就能开启对应的服务,并获取授权码。
开启服务,获取邮件授权

2.引入依赖
<!-- 版本由springboot管理 -->

<!-- 邮件依赖 (必要) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

 <!-- redis (非必要)-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>
 
 <!-- JWT (非必要) -->
 <dependency>
     <groupId>io.jsonwebtoken</groupId>
     <artifactId>jjwt</artifactId>
     <version>0.9.1</version>
 </dependency>

3.在application.yml配置文件中,配置相应的参数
spring:
  mail:
    host: smtp.qq.com #QQ的发送邮件服务器
    username: 邮箱
    password: 授权码
4.编写一个工具类
@Data
@Slf4j
@Component
public class MailUtil {
   

    //注入邮件服务
    @Autowired
    private JavaMailSenderImpl mailSender;
    //谁来发
    @Value("${spring.mail.username}")
    private String from;

    /**
     * 发送简单邮件
     * @param email 发给谁
     * @param subject 邮件主题
     * @param text 邮件内容
     */
    public void sendSimpleMail(String email,String subject,String text){
   
        try {
   
            SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
            simpleMailMessage.setFrom(from);
            simpleMailMessage.setTo(email);
            simpleMailMessage.setSubject(subject);
            simpleMailMessage.setText(text);
            mailSender.send(simpleMailMessage);
        }catch (Exception e){
   
            log.error("发送失败!",e);
            throw new RuntimeException(e);
        }
    }
}
5.编写业务方法,以发送验证码为例
@Async("myExecutor") 
public void sendCodeMail(String email) {
   
    //六位随机数的验证码
    String code = CodeUtil.randomCode(6);
    //邮件主题
    String subject = "验证码";
    //邮件内容
    String text = "验证码:" + code +",10分钟之内有效。";

    Map<String,Object> map = new HashMap<>(2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值