smtp连接失败使用javamail api?

时间:2012-04-24 11:04:31

标签: javamail

每当我尝试连接到smtp主机时,它显示连接失败,我的本地交换服务器上的端口25上的响应-1,但我能够连接到gmail smtp主机以从gmail发送电子邮件我正在使用下面的代码。

        Properties props = System.getProperties();
        props.put("mail.smtp.host", "localexchange.server.address");
        props.put("mail.from", "emailid");
        Session session = Session.getInstance(props, null);

        try {
            MimeMessage msg = new MimeMessage(session);
            msg.setFrom();
            msg.setRecipients(Message.RecipientType.TO,
                              "emailid");
            msg.setSubject("JavaMail hello world example");
            msg.setSentDate(new Date());
            msg.setText("Hello, world!\n");
            Transport.send(msg);
        } catch (MessagingException mex) {
            System.out.println("send failed, exception: " + mex);
        }

3 个答案:

答案 0 :(得分:0)

首先检查您的SMTP服务器端口是否已为您的系统打开。

您可以通过Telnet命令

进行检查

Windows ---启动----运行---- cmd ---输入'Telnet(SMTP SERVER IP)(PORT)' 点击进入

答案 1 :(得分:0)

通过将mail.smtp.debug属性设置为true来获取实际的SMTP会话调试文本。您可以从命令提示符读取调试输出,也可以将其设置为输出到文件。

检查您的身份验证方法是否允许。在显示AUTH之后,它应该具有允许的身份验证选项(GSSAPI,DIGEST-MD5,PLAIN,LOGIN)。

如果没有到达AUTH,您可能使用了错误的端口。一般:

  • 25 for SMTP
  • 465 for SSL
  • 587 for TLS

如果您发布调试输出,我们可能会提供更多提示。

答案 2 :(得分:-1)