You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot邮件发送报错:java.lang.ClassNotFoundException: javax.activation.FileTypeMap

SpringBoot 3.x邮件发送:解决javax.activation.FileTypeMap找不到的问题

问题根源

你使用的Spring Boot 3.0.2基于Spring 6,已全面迁移到Jakarta EE 9+,原javax.*命名空间的API全部替换为jakarta.*。javax.activation.FileTypeMap属于旧Java EE API,在Jakarta生态中对应的是jakarta.activation.FileTypeMap,手动添加旧依赖会与Spring Boot 3的依赖体系冲突,导致类加载失败。

解决步骤

1. 引入正确的邮件依赖

直接使用Spring Boot官方的spring-boot-starter-mail starter,它会自动管理Jakarta Mail及相关依赖,无需手动添加单独的activation包:

Maven(pom.xml)

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

Gradle(build.gradle)

implementation 'org.springframework.boot:spring-boot-starter-mail'

务必移除之前手动添加的javax.activation、jakarta.activation等单独依赖,避免依赖冲突。

2. 补全EmailConfig配置

你的配置缺少SMTP认证和加密属性,完善后才能正常发送邮件:

package com.aventix.api.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;

import java.util.Properties;

@Configuration
public class EmailConfig {

    @Bean
    public JavaMailSender mailSender(){
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();

        mailSender.setHost("smtp.gmail.com");
        mailSender.setPort(587);
        mailSender.setUsername("你的Gmail地址");
        mailSender.setPassword("你的Gmail应用密码"); // 注意:Gmail需用应用密码,不能用原账号密码

        Properties props = mailSender.getJavaMailProperties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.debug", "false"); // 开启可查看邮件发送详细日志

        return mailSender;
    }
}

3. Gmail特殊配置

若使用Gmail发送邮件:

  • 必须开启账号的两步验证
  • 在Google账号设置中生成应用密码,用此密码替换配置中的密码
  • 确保账号未限制第三方应用访问

内容的提问来源于stack exchange,提问作者Bhorah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 16:55:47