使用microsoft exchange服务器发送电子邮件

时间:2013-09-09 08:24:07

标签: java email

我正在尝试从微软交换服务器发送电子邮件,我似乎无法使其正常工作。

这是我的代码:

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)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

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