Java 电子邮件与 Commons Mail

标签 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

最佳答案

您可能需要 javax 邮件包,可以在(例如)http://repo1.maven.org/maven2/javax/mail/mail/1.4/mail-1.4.jar 找到该包。

<小时/>

如果您正在使用 Maven 本身进行构建(您没有说是,但使用依赖项管理器是一件好事,并且可能会解决您的问题...)

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4</version>
</dependency>

如果您注意到 org.apache.commons 的 Maven 依赖项你会看到:

这个工件取决于...

  • javax.mail

如果您使用过 Maven,则 pom file对于 org.apache.commons,javax.mail 作为第一个依赖项。

综上所述,下载 http://repo1.maven.org/maven2/javax/mail/mail/1.4/mail-1.4.jar 的链接将其包含在您的类路径中,您应该会很好。

<小时/>

在讨论这个主题时,您可能希望阅读javax vs java package 这回答了为什么 javax 与 java 包不同并分开的问题。

关于Java 电子邮件与 Commons Mail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114408/

相关文章:

java - 是否应该在 DAO 中实现特定于数据源的限制?

Android - 无法在电子邮件中附加文件

java - @JoinColumn 注解在 Hibernate 中是强制的吗?

java - 在Java中,有没有办法在同一个构造函数中调用this()和super()?

java - 如何选择在 Java 的泛型类中调用哪个具体实例方法

python - Imaplib:如何从 Gmail 中删除电子邮件?

node.js - 使用 sendgrid Web api 发送 Nodejs 电子邮件

php电子邮件脚本不发送电子邮件

C# + 信息权限管理

java - Android项目出现问题