我正在尝试使用commons api发送电子邮件,但是,我收到了错误!
这是Commons指南的一个例子,但是,我不能发送到这里..
public class Emailsss {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws EmailException, MalformedURLException {
// TODO code application logic here
// Create the email message
HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.googlemail.com");
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("username", "mypw"));
email.setSSLOnConnect(true);
email.setFrom("username");
email.setSubject("TestMail");
email.setMsg("This is a test mail ... :-)");
email.addTo("to");
URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
String cid = email.embed(url, "Apache logo");
email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");
email.setTextMsg("Your email client does not support HTML messages");
// send the email
email.send();
}
}
这是我的错误:
Exception in thread "main" java.lang.NoSuchMethodError:
javax.mail.internet.MimeBodyPart.setText(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
at org.apache.commons.mail.HtmlEmail.build(HtmlEmail.java:581)
at org.apache.commons.mail.HtmlEmail.buildMimeMessage(HtmlEmail.java:519)
at org.apache.commons.mail.Email.send(Email.java:1436)
at emailsss.Emailsss.main(Emailsss.java:46)
Java Result: 1
答案 0 :(得分:2)
您可能需要可以在(例如)http://repo1.maven.org/maven2/javax/mail/mail/1.4/mail-1.4.jar找到的javax邮件包
如果你正在建立maven本身(你没有说你是,但使用一个依赖经理是一件好事,可能会解决你的问题......)
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
</dependency>
如果您注意到org.apache.commons的maven依赖项,您会看到:
这个神器取决于......
如果您使用过maven,org.apache.commons的pom file将javax.mail作为第一个依赖项。
所有这一切,下载http://repo1.maven.org/maven2/javax/mail/mail/1.4/mail-1.4.jar的链接将其包含在您的课程路径中,您应该很好。
关于这个问题,您可能希望阅读javax vs java package 它回答了为什么javax与java包不同并且与java包分开的问题。