从具有MS交换服务器的Java发送邮件给出连接超时

时间:2014-08-06 17:37:57

标签: java email javamail exchange-server

我正在尝试从我的java网络应用程序发送邮件,其中我的邮件服务器主机是 exg6.exghost.com 但是它给出了连接超时错误。当我的主持人 smtp.gmail.com 时,相同的代码可以正常工作。

我的代码是

Properties props = new Properties();
        props.put("mail.smtp.host", "exg6.exghost.com");
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.auth", "false");

        Session session1 = Session.getInstance(props,
            new javax.mail.Authenticator() {
                protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
                    return new javax.mail.PasswordAuthentication(username,password);
                }
            });

        try {

            Message message = new MimeMessage(session1);
            message.setFrom(new InternetAddress(username));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse("xyz@gmail.com"));
            message.setSubject("Testing Subject");
            message.setText("Dear Mail Crawler," +
                    "\n\n No spam to my email, please!");

            Transport.send(message);

            System.out.println("Done");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }

我还尝试 mail.smtp.auth true ,但连接超时了。

请帮忙。

1 个答案:

答案 0 :(得分:1)

请参阅tips for debugging connection problems的JavaMail常见问题解答。

您似乎在默认(纯文本)SMTP端口上进行连接。您的服务器很可能只接受SMTP-over-SSL端口上的连接。加上这个:

props.put("mail.smtp.ssl.enable", "true");