SpringBoot整合邮件发送

文章介绍了如何在SpringBoot项目中配置邮件服务,包括添加maven依赖,设置SMTP服务器信息,以及创建邮件发送工具类。提供了静态方法来创建和发送简单及复杂邮件,并展示了邮件服务的两种实现方式:非IOC管理和使用Spring管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.进入邮箱官网获取邮箱授权码,导入maven依赖

<!--对邮件的支持jar-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

二.发送邮件工具类自己封装,百度也有,可发送简单和复杂邮件

1.配置yml

spring:
  mail:
    host: smtp.qq.com   # 设置邮箱主机(服务商),这里使用QQ邮件服务器
    username:   # 设置用户名 - 发送方
    password:    # 设置密码,该处的密码是QQ邮箱开启SMTP的授权码而非QQ密码
    properties:
      mail:
        smtp:
          auth: true  # 必须进行授权认证,它的目的就是阻止他人任意乱发邮件
          starttls: #SMTP加密方式:连接到一个TLS保护连接
            enable: true
            required: true

2.没有交给springIOC管理的

package com.lzc.basic.utils;

import cn.hutool.extra.spring.SpringUtil;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

public class EmailUtil {
    private static final String FROM = "1298266265@qq.com";
    private static final JavaMailSender javaMailSender = SpringUtil.getBean(JavaMailSender.class);
    private EmailUtil() {
    }
    public static MimeMessageHelper getHelper(){
        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
            helper.setFrom(FROM);
            return helper;
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }

    public static void send(MimeMessageHelper helper) {
        javaMailSender.send(helper.getMimeMessage());
    }
}

3.交给springIOC管理的

package com.lzc.basic.utils;

import com.lzc.basic.exception.GlobalException;
import com.lzc.basic.exception.GlobalExceptionEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

@Component
public class MailUtils {
    @Autowired
    private JavaMailSender javaMailSender;

    /**
     *
     * @param from 发送者
     * @param to 收件人
     * @param cc 抄送人
     * @param subject 邮件主题
     * @param content 邮件内容
     */
    public void sendSimpleMail(String from,String to,String cc,String subject,String content){
        //简单邮件
        SimpleMailMessage simpleMessage = new SimpleMailMessage();
        simpleMessage.setFrom(from);
        simpleMessage.setTo(to);
        simpleMessage.setCc(cc);
        simpleMessage.setSubject(subject);
        simpleMessage.setText(content);
        //发送邮件
        javaMailSender.send(simpleMessage);
    }

    public void sendMimeMessage(String from, String to,String subject,String content,File file){
        try {
            //创建复杂邮件对象
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            //发送复杂邮件的工具类
            //true - 能够添加附件
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
            helper.setFrom(from);
            helper.setSubject(subject);
            //true - 能够再内容中编写html标签 - 会解析
            helper.setText(content,true);
            //添加附件
            if (file != null) {
                helper.addAttachment(file.getName(),file);
            }
            //收件人
            helper.setTo(to);
            javaMailSender.send(mimeMessage);
        } catch (MessagingException e) {
            throw new GlobalException(GlobalExceptionEnum.MAIL_SEND_ERROR);
        }
    }
}

 3.后端接收参数进行校验JSR303,调用接口,进入业务层进行业务判断

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好似少年的一场梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值