3

我在使用 Java 程序中的 Lotus Notes 发送电子邮件时遇到问题。我知道这非常简单,但我想我错过了一些东西。我的代码如下;

import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

public class MailClass {

    public void SendMail() {
        SimpleEmail email = new SimpleEmail();

    try {
        email.setHostName("mail.smtp.host");
        email.addTo("recipient@company.com");
        email.setFrom("sender@agency.com");
        email.setSubject("Hello World");
        email.setMsg("This is a simple test of commons-email");
        email.send();

    } catch (EmailException ex) {
        Logger.getLogger(MailClass4.class.getName()).log(Level.SEVERE, null, ex);
    }
}

public static void main(String[] args) {
    MailClass main = new MailClass();
    main.SendMail();
  }
}

我不断收到此错误

SEVERE: null
org.apache.commons.mail.EmailException: Sending the email to the following server     failed : mail.smtp.host:25
    at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)
...
Caused by: javax.mail.MessagingException: Unknown SMTP host: mail.smtp.host;
nested exception is:java.net.UnknownHostException: mail.smtp.host at    com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1970)

我猜这与我的主机有关,但不确定该怎么做。据我了解,您的主机应该是您的电子邮件客户端(例如 mail.smtp.google.com)。但由于这是 Lotus Notes(顺便说一句,它在我们的 Intranet 中运行),因此实施会有所不同。我见过使用“mail.smtp.host”作为主机的其他示例,但我无法正确处理这个......这是我第一次做一个电子邮件程序,所以我对此一无所知.

4

2 回答 2

4

您可以将运行在 Intranet 上的 Domino 服务器用作 SMTP 服务器,但首先您必须询问您的管理员 Domino 是否已设置为允许 SMTP - 同时询问正确的主机名和端口)。

于 2012-12-26T13:55:21.950 回答
2

setHostName 需要 smtp 服务器的主机名或 IP 地址。异常清楚地表明了问题所在。

Lotus Notes 基本上只是一个客户端,与您要完成的任务无关。

于 2012-12-26T10:26:48.313 回答