我正在尝试迁移 JavaX.mail 类以使用 Jakarta 邮件,因为需要从 Tomcat 9 迁移到 10。我收到一条消息
java.lang.IllegalStateException: Not provider of jakarta.mail.util.StreamProvider
在尝试通过 gmail 发送电子邮件时被发现。
我已将 angus 邮件包含在 .classpath 文件中,以及 jakarta 邮件和激活
<classpathentry kind="lib" path="/home/astump/src/codex/Java/asWeb/web/WEB-INF/lib/angus-mail-2.0.3.jar"/>
<classpathentry kind="lib" path="/home/astump/src/codex/Java/asWeb/web/WEB-INF/lib/jakarta.activation-api-2.1.3.jar"/>
<classpathentry kind="lib" path="/home/astump/src/codex/Java/asWeb/web/WEB-INF/lib/jakarta.jakartaee-api-10.0.0.jar"/>
但是,这并不能解决问题。
我在课堂上通过以下方式引用雅加达:
import jakarta.mail.Message;
import jakarta.mail.MessagingException;
import jakarta.mail.PasswordAuthentication;
import jakarta.mail.Session;
import jakarta.mail.Transport;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeMessage;
import jakarta.activation.DataHandler;
import jakarta.activation.DataSource;
import jakarta.activation.FileDataSource;
import jakarta.mail.BodyPart;
import jakarta.mail.Folder;
import jakarta.mail.Multipart;
import jakarta.mail.NoSuchProviderException;
import jakarta.mail.Store;
import jakarta.mail.internet.MimeBodyPart;
import jakarta.mail.internet.MimeMultipart;
尝试将这些导入更改为 com.eclipse.angus.mail.Store 等...没有成功。
└── WEB-INF
...
└── lib
├── jakarta.activation-2.0.1.jar
├── jakarta.mail-2.0.1.jar
└── jakarta.mail-api-2.0.1.jar
将 3 个 jar 文件下载到您的
WEB-INF/lib
文件夹中。
谷歌
maven jakarta.mail:jakarta.mail-api:jar:2.0.1
查找谷歌结果:
Maven Repository
jakarta.mail-api » 2.0.1
打开链接:
https://mvnrepository.com/artifact/jakarta.mail/jakarta.mail-api/2.0.1
找到
点击
jar
,下载jar文件。 (https://repo1.maven.org/maven2/jakarta/mail/jakarta.mail-api/2.0.1/jakarta.mail-api-2.0.1.jar)