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

获取jakarta.mail.Session实例时触发IllegalStateException异常求助

解决Jakarta Mail创建Session时的StreamProvider找不到错误

错误原因

这个错误是因为Jakarta Mail 2.0及以上版本依赖jakarta.mail.util.StreamProvider服务处理流操作,但你的项目里缺少了该服务的具体实现依赖。Jakarta Mail API本身只定义规范,需要配套的实现包才能运行。

解决方法

  • 引入完整的Jakarta Mail实现依赖:
    只引入jakarta.mail-api是不够的,必须添加包含实现类的依赖。以Maven为例,在pom.xml中添加:
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>jakarta.mail</artifactId>
        <version>2.0.1</version> <!-- 可替换为最新稳定版本 -->
    </dependency>
    
    Gradle项目则添加:
    implementation 'com.sun.mail:jakarta.mail:2.0.1'
    
  • 验证类路径:
    确认构建工具已正确下载依赖,且类路径中存在包含META-INF/services/jakarta.mail.util.StreamProvider文件的JAR包,该文件指定了StreamProvider的具体实现类。

关于Authenticator和端口的补充

你设置的authenticator为null、端口25,对应无需认证的SMTP服务器场景(比如内部测试服务器),这个配置本身没问题。如果后续发送邮件失败,再检查SMTP服务器是否允许匿名连接、端口是否开放即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:40:22