1

我正在尝试从 Microsoft Exchange 服务器发送电子邮件,但似乎无法正常工作。

这是我的代码:

private static void sendEmail(){
  host = "mail.tzr-019.co.il";
  Properties props = System.getProperties();
  props.setProperty("mail.smtps.host", host);
  props.setProperty("mail.smtp.port", "25");
  props.setProperty("mail.smtps.auth", "true");

  Session session = Session.getDefaultInstance(props);

  try{
     MimeMessage message = new MimeMessage(session);
     message.setFrom(new InternetAddress,user));
     message.addRecipient(Message.RecipientType.TO,
                              new InternetAddress(TO));
     message.setSubject("This is the Subject Line!");
     message.setText("This is actual message");
     Transport.send(message);

     System.out.println("Sent message successfully....");
  }catch (Exception mex) {
     mex.printStackTrace();
  }
}

我收到错误消息:

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;
  nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:345)
at javax.mail.Service.connect(Service.java:226)
at javax.mail.Service.connect(Service.java:175)
at javax.mail.Transport.send0(Transport.java:253)
at javax.mail.Transport.send(Transport.java:124)

有任何想法吗?

4

1 回答 1

0

当我看到您正在尝试连接到 localhost 时,我会假设这是正确的,并且您是 Exchange Server 管理员并指出了其他可能性。

Microsoft Exchange 服务器默认使用称为 Exchange Active Sync 的专有协议。这是公司帐户最常见的设置,并且(例如,在我的情况下)可能不允许其他选项。每个帐户在使用其他协议(例如 POP3 或 IMAP4 和发送对应协议 - SMTP)时可能具有不同的权限。

确保通过您尝试发送邮件的帐户支持 POP3/IMAP4 同步。

请参阅:http ://help.outlook.com/en-us/140/cc875899(d=loband).aspx

于 2013-09-09T08:36:02.583 回答