Apache Commons Email设置(无法解析为一种类型),我似乎具有正确的JAR

时间:2019-02-21 11:23:40

标签: java apache-commons

我正在尝试获取用于发送基本电子邮件的代码,该代码在《 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 -mail-1.4.jar

有人可以指出正确的方向吗?

2 个答案:

答案 0 :(得分:0)

您与您的班级以及需要导入的班级存在命名冲突。您的类称为Email,因此它将与您需要导入的org.apache.commons.mail.Email冲突,因此将您的类重命名为其他名称(类定义和文件名),并且您应该会很高兴。

或者,您可以更改代码以使用完全限定的名称引用Commons Email类,但是除非您确实必须将其命名为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;

答案 1 :(得分:0)

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

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