邮件不适用于 javax.mail-api-1.5.1

Mail is not working with javax.mail-api-1.5.1

我已经实现了一个相同的程序来测试我的邮件服务器。

public void sendMail() {
        System.out.println("Send Mail Called");
        try{
            System.out.println("Constructor called ");
            Properties props = new Properties();
            props.put("mail.smtp.host","host");
            props.put("mail.smtp.port", "port");    
            props.put("mail.debug", "true");
            props.put("mail.smtp.auth", "true");
            Session session = Session.getInstance(props, null);

            MimeMessage mail = new MimeMessage(session);

            //Set Mailer string in Header.. 
            mail.setHeader("X-Mailer", "ABC");
            InternetAddress[] recList = new InternetAddress[1];
            recList[0] = new InternetAddress("receient@abc.com");
            mail.setRecipients(Message.RecipientType.TO, recList);

            mail.setFrom(new InternetAddress("receiver@abc.com"));
            mail.setSubject("This is demo test mail");

            Multipart mp = new MimeMultipart();

            MimeBodyPart mbp1 = new MimeBodyPart();

            //messageMIME can be "text/plain" or "text/html" or anything related to mime
            mbp1.setContent("Hi this is test demo","text/html");
            mp.addBodyPart(mbp1);

            mail.setContent(mp);
            mail.saveChanges();

            mail.setSentDate(new Date());

            // Send the message
            Transport trans = session.getTransport("smtp");
            trans.connect("host","username","password");
            trans.sendMessage(mail, mail.getAllRecipients());
            trans.close();
            System.out.println("Mail successfully send");
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

但是当我 运行 以上方法时,我收到以下异常。

java.lang.ClassNotFoundException: com.sun.mail.util.MailLogger
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
        at javax.mail.Session.initLogger(Session.java:221)
        at javax.mail.Session.<init>(Session.java:206)
        at javax.mail.Session.getInstance(Session.java:242)
        at Register.sendMail(Register.java:125)
        at Register.doPost(Register.java:22)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2441)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2430)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)

同样的错误分析后,我才知道它需要添加下面的 Maven POM

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.2</version>
</dependency>

但是我不知道在哪里添加它,因为我没有使用 Maven,我只是 运行 示例 java 程序。

您可以转到 The Central Repository, look for the groupId com.sun.mail, choose newest version of artefactId javax.mail finally download javax.mail-1.5.4.jar 并将其添加到您的项目或 class 路径,jar 包含 MailLogger class.