未找到类 EmailAddressCriteria (SimpleJavaMail) [重复]

问题描述 投票:0回答:1

我尝试使用 SimpleJavaMail 库,但我认为在导入 API 的 JAR 及其依赖项时我错过了一些东西。我使用 Java 8 (OpenJDK),这里是我在 Eclipse Oxygen 项目配置中添加的外部 JAR 的列表:

  • slf4j-api-1.7.13.jar
    (根据
    其 GitHub
    ,1.7.13 版本似乎是自 2.5.1 版本以来在 SimpleJavaMail 中使用的 SLF4J 的版本)
  • slf4j-simple-1.7.13.jar
  • javax.mail.jar
    版本1.6.1
  • simple-java-mail-5.0.3.jar

这是一个代码示例:

import org.simplejavamail.email.Email;
import org.simplejavamail.email.EmailBuilder;
import org.simplejavamail.mailer.Mailer;
import org.simplejavamail.mailer.MailerBuilder;
import org.simplejavamail.mailer.config.TransportStrategy;

public class Main {
    public static void main(String[] args) throws Exception {
        
        Email notif = EmailBuilder.startingBlank()
                .to("[email protected]")
                .withSubject("Bla")
                .withPlainText("Lorem ipsum\nLorem ipsum")
                .buildEmail();
        
        Mailer mailer = MailerBuilder
                .withSMTPServer("smtp.gmail.com", 587, "[email protected]", "bar")
                .withTransportStrategy(TransportStrategy.SMTP_TLS)
                .withSessionTimeout(10 * 1000)
                .clearEmailAddressCriteria() // turns off email validation
                .withDebugLogging(true)
                .buildMailer();
        
        mailer.sendMail(notif);
    }
}

我在 Linux 上通过 Eclipse 运行该代码的例外情况是:

Exception in thread "main" java.lang.NoClassDefFoundError: org/hazlewood/connor/bottema/emailaddress/EmailAddressCriteria
    at org.simplejavamail.mailer.MailerGenericBuilder.<init>(MailerGenericBuilder.java:152)
    at org.simplejavamail.mailer.MailerBuilder$MailerRegularBuilder.<init>(MailerBuilder.java:136)
    at org.simplejavamail.mailer.MailerBuilder.withSMTPServer(MailerBuilder.java:49)
    at Main.main(Main.java:18)
Caused by: java.lang.ClassNotFoundException: org.hazlewood.connor.bottema.emailaddress.EmailAddressCriteria
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 4 more

知道如何解决这个问题吗?

java jar dependencies simple-java-mail
1个回答
3
投票

查看 Maven Central 的

pom.xml
for simple-java-mail-5.0.3 您缺少以下依赖项

 <dependency>
  <groupId>com.github.bbottema</groupId>
  <artifactId>emailaddress-rfc2822</artifactId>
  <version>1.0.1</version>
  <scope>compile</scope>
</dependency>

我认为您应该使用 Maven 或 Gradle 等构建工具来设置项目,而不是手动添加 JAR 文件,以避免缺少依赖项的问题。

© www.soinside.com 2019 - 2024. All rights reserved.