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

升级Jakarta Mail 1.6.5至2.0.1配合Spring 5.3.9出现报错如何解决

问题解决指南

版本适配说明

Spring 5.3.9 版本不支持Jakarta Mail 2.0.1。
Spring Framework 5.x全版本均基于Java EE 8规范开发,其中spring-context-support包内的JavaMailSenderImpl实现类默认依赖javax.mail命名空间的旧版JavaMail API,返回的MimeMessage是javax.mail.internet.MimeMessage类型,和Jakarta Mail 2.0+使用的jakarta.mail命名空间的同名类完全不兼容,这就是你遇到类型不匹配报错的根本原因。
Spring从6.0版本开始才全面迁移到Jakarta EE 9+规范,原生支持jakarta.*命名空间的各类API,包括Jakarta Mail 2.x。

解决方案

你可以根据自己的项目情况选择以下任意一种方案:

  • 方案一:保留Spring 5.3.9版本,回退JavaMail依赖
    放弃升级到Jakarta Mail 2.0.1,换回1.6.x版本的JavaMail(也就是升级前的版本),同时把所有代码里的jakarta.mail开头的import语句改回javax.mail开头即可。
  • 方案二:保留Jakarta Mail 2.0.1版本,升级Spring到6.0+
    将项目内所有Spring相关依赖(包括spring-core、spring-context、spring-context-support等)统一升级到6.0或更高版本,Spring 6.x原生支持Jakarta Mail 2.x,JavaMailSenderImpl.createMimeMessage()返回的就是jakarta.mail.internet.MimeMessage类型,不会再出现类型不匹配问题。

内容的提问来源于stack exchange,提问作者Mançaux Pierre-Alexandre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:15:02