使用Commons Mail发送Java电子邮件

时间:2013-11-21 06:58:02

标签: java email

我正在尝试使用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

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依赖项,您会看到:

这个神器取决于......

  • javax.mail

如果您使用过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包分开的问题。

相关问题