通过Lotus Notes使用Java Apache Commons Mail发送电子邮件

时间:2012-12-26 09:54:17

标签: java email lotus-notes apache-commons-email

我的电子邮件配置无法在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 btw中运行),所以暗示将是不同的。我见过其他使用“mail.smtp.host”作为主机的样本,但我无法正确使用这个样本.... 这是我第一次做一个电子邮件程序,所以我对此几乎一无所知。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

setHostName需要smtp服务器的主机名或IP地址。例外情况非常清楚问题是什么。

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