gpt4 book ai didi

Spring JavaMailSenderImpl javax.mail.NoSuchProviderException : smtp

转载 作者:行者123 更新时间:2023-12-04 22:01:28 24 4
gpt4 key购买 nike

我有一个非常大的项目,有大量的依赖项,并且在尝试发送邮件时遇到以下异常:

javax.mail.NoSuchProviderException: smtp

我知道代码有效,因为它是其他项目中使用的库的一部分。有谁知道什么会导致这个异常发生?我查看了所有的 jar,唯一包含“javax.mail”的是“mail-1.4.4-SNAPSHOT.jar”。

是否有一些文件/类注册了“smtp”协议(protocol),它可能发生在我的类路径中的其他地方?

最佳答案

自从提出这个问题以来已经有一段时间了,但仍然值得回答:

发生的事情是您的邮件服务正在使用 SMTP(通常,它甚至被认为是默认使用的协议(protocol))协议(protocol)来发送邮件。无论您使用什么具体的类作为邮件服务(可能取决于您使用的是 Java EE、Spring 还是其他东西),它最终都会使用来自 javamail API 的类。在此 API 中,为了建立与您的邮件服务器的连接,将创建一个 javax.mail.Session 实例,并且该对象将动态加载为要使用的协议(protocol)提供支持的类。

加载所需的类时,如果找不到,则会捕获 ClassNotFoundException 并将其作为 javax.mail.NoSuchProviderException 重新抛出,并显示一条消息,指示缺少协议(protocol)支持。

这种情况下的解决方案是将 smtp.jar 添加到您的类路径中。
使用基于 Maven 的项目,只需添加以下依赖项

    <dependency>
<groupId>com.sun.mail</groupId>
<artifactId>smtp</artifactId>
<version>1.4.5</version>
</dependency>

关于Spring JavaMailSenderImpl javax.mail.NoSuchProviderException : smtp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3024752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com