Apache Commons 电子邮件设置(无法解析为类型),我似乎有正确的 JAR

Apache Commons Email setup (cannot be resolved to a type), I appear to have correct JARs

我正在尝试获取用于发送基本电子邮件的代码,这是我在 Apache Commons 电子邮件用户指南中找到的,有效:

package reporting;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

public class Email {

    public static void main (String[] args) {

        Email email = new SimpleEmail();
        email.setHostName("smtp.googlemail.com");
        email.setSmtpPort(465);
        email.setAuthenticator(new DefaultAuthenticator("username", "password"));
        email.setSSLOnConnect(true);
        email.setFrom("ross.donohoe@tvgmedia.com");
        email.setSubject("TestMail");
        email.setMsg("This is a test mail ... :-)");
        email.addTo("foo@bar.com");
        email.send();
    }
}

此论坛上存在类似问题,但答案建议下载我已有的 JAR。我的构建路径中有以下 JAR: - 激活-1.1.1.jar - javax.mail-1.6.2.jar - commons-email-1.5.jar - commons-email-1.5-javadoc.jar - commons-email-1.5-sources.jar - commons-email-1.5-test-sources.jar - commons-email-1.5-tests.jar - 邮件 1.4.jar

有人能给我指出正确的方向吗?

您的 class 与您需要导入的 class 存在命名冲突。您的 class 被称为 Email,因此它将与您需要导入的 org.apache.commons.mail.Email 冲突,因此将您的 class 重命名为其他名称(class 定义和文件名),你应该是金色的。

或者,您可以更改您的代码以引用具有完全限定名称的 Commons 电子邮件 class,但我只是重命名您的 class,除非您真的必须调用它 Email 且无法重命名。

org.apache.commons.mail.Email email = new SimpleEmail();

除此之外,检查您是否有这些导入并且它应该可以工作:

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

确保您的导入正确完成。如果是,那么您的 IDE 可能无法访问导入到您的 .m2 文件夹中的文件。

您可以转到您的用户目录,打开 .m2 文件夹,查找该文件,将其删除并重新导入,或者重新启动您的 IDE。