Skip to content

SpringBoot发送简单邮件

约 324 字大约 1 分钟

SpringBoot邮件

2025-03-04

本文作者:程序员飞云

本站地址:https://www.flycode.icu

1. 引入依赖


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

2. yml配置

spring:
  mail:
    host: smtp.qq.com
    port: 25
    username: xxx # 邮箱账号
    password: xxx # 授权码

3. QQ邮箱授权码

在设置,账号里面,开启服务 sbse-1 生成授权码 sbse-2 发送信息 sbse-3 生成授权码(妥善保管)

4. 发送简单邮件service

public interface MailService {
    void sendEmail();
}

实现类


@Service
public class MailServiceImpl implements MailService {
    @Autowired
    private JavaMailSender javaMailSender;

    private String from = "xxxx";
    private String to = "xxx";
    private String subject = "测试";
    private String context = "正文";

    /**
     * 发送人
     * 接收人
     * 标题
     * 正文
     */
    @Override
    public void sendEmail() {
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setFrom(from);
        mailMessage.setTo(to);
        mailMessage.setSubject(subject);
        mailMessage.setText(context);
        javaMailSender.send(mailMessage);
    }
}

测试


@SpringBootTest
class MailServiceImplTest {
    @Resource
    private MailServiceImpl mailService;


    @Test
    void sendEmail() {
        mailService.sendEmail();
    }
}

5. 高级版本


@Service
public class MailServiceImpl implements MailService {
    @Autowired
    private JavaMailSender javaMailSender;
    // 发送方
    private String from = "xxxx";
    private String to = "xxxx";
    private String subject = "测试";
    private String context = "<a href='https://www.baidu.com'>点击获取</a>";

    @Override
    public void sendMimeEmail() {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        try {
            // 可以设置发送附件
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            helper.setSubject(subject);
            helper.setFrom(from);
            helper.setTo(to);
            // 发送链接
            helper.setText(context, true);
            // 发送附件,file地址
            File file = new File("xxxx");
            helper.addAttachment(file.getName(), file);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

贡献者

  • flycodeuflycodeu

公告板

2025-03-04正式迁移知识库到此项目