Java SMTP邮件 - 连接超时错误

时间:2013-11-26 14:42:07

标签: java email smtp javamail smtpclient

我一直在开发一个程序,用于从基于桌面的Java应用程序发送电子邮件。

当我使用Google SMTP服务器(smtp.gmail.com)测试时,该程序运行正常,但是当我为其他smtp服务器测试它时会产生错误 -

javax.mail.MessagingException: Could not connect to SMTP host:
 smtp.collaborationhost.net, port: 465;
 nested exception is:
 java.net.ConnectException: Connection timed out: connect

我在Eclipse中运行代码。

以下是代码段 -

public class Emailer {

    public static void main(String[] args) {

        String name = "Testing";

        Properties props = new Properties();

        props.put("mail.smtp.host", "smtp.collaborationhost.net");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");

        Session session = Session.getDefaultInstance(props, 
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("qwert@xyzcompany.com","*******");
                }
        });

        try
        {
            Message message = new MimeMessage(session);

            message.setFrom(new InternetAddress("qwert@xyzcompany.com"));
            message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("testgmail.com"));     
            message.setSubject("Generic Mail Test from Eclipse !!!");
            message.setText("This is a Test Mail, sent from Local Eclipse System via Google SMTP server. \n\n" + "Regards, \n" + name + "." );
            Transport.send(message);

            System.out.println("Message Sent !!!");
        }

        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

此JavaMail FAQ条目将为您debug connection problems提供帮助。在这种情况下,我怀疑其他服务器没有使用与Gmail相同的端口,因此您需要更改配置。

此外,您可以通过更正其中一些common mistakes来简化您的计划。