【问题标题】:Apache Email API : Getting an Exception - Invalid 'To' addressApache 电子邮件 API:获取异常 - 无效的“收件人”地址
【发布时间】:2011-10-19 17:54:57
【问题描述】:

我正在使用 Apache commons mail API 通过 Java 程序发送电子邮件。

下面是java代码。

 public static void sendSimpleMail() throws Exception {
    Email email = new SimpleEmail();
    email.setSmtpPort(25);
    email.setDebug(false);
    email.setHostName("localhost");
    email.setFrom("user1@test.com");     // Is this correct ?Do we need this?
    email.setSubject("Hi");
    email.setMsg("This is a test mail ... :-)");
    email.addTo("myname@mycompany.com");
    email.setTLS(true);
    email.send();
    System.out.println("Mail sent!");
}

我使用有效的 DNS 服务器在端口 25 上运行 Free SMTP server

现在,当我运行程序时,出现以下异常。

  Exception in thread "main" org.apache.commons.mail.EmailException: Sending the email to the following server failed : localhost:25
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
at org.apache.commons.mail.Email.send(Email.java:1267)
at TestMail.sendSimpleMail(TestMail.java:26)
at TestMail.main(TestMail.java:13)
Caused by: com.sun.mail.smtp.SMTPSendFailedException: 
  550 Invalid recipient:     myname@mycompany.com

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388)
at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1215)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:586)
at javax.mail.Transport.send0(Transport.java:169)
at javax.mail.Transport.send(Transport.java:98)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232)
... 3 more

现在,我的电子邮件 ID 是一个非常有效的电子邮件 ID。为什么程序会出现这样的错误?

【问题讨论】:

  • 您的本地服务器是否正在运行,是否允许发送到互联网?
  • 是的。它是。但问题似乎有所不同。就像它说的那样,“地址无效”

标签: java smtp jakarta-mail apache-commons


【解决方案1】:

550 是标准的 SMTP 错误代码,因此问题似乎出在 SMTP 服务器配置的某个地方。验证您是否可以手动向给定的电子邮件地址(telnet localhost 25)发送电子邮件,如果不能,则与 Apache 无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 2011-09-07
    • 2020-09-04
    相关资源
    最近更新 更多