MyEclipse中的JavaMail异常:javax.mail.SendFailedException:发送失败;嵌套异常是:javax.mail.MessagingException:

时间:2013-01-07 19:23:32

标签: javamail

我正在使用邮件开发一个简单的Web应用程序,MyEclipse8.0.1和Weblogic8.0作为服务器。以下是我发送电子邮件的代码,它适用于控制台但是当我使用myeclipse和Weblogic运行它时,它显示以下错误:

javax.mail.SendFailedException:发送失败;嵌套异常是:javax.mail.MessagingException:无法连接到SMTP主机:smtp.gmail.com,port:465

这是我在jsp中的代码:

<%
try {
        Properties p = new Properties();
        p.put("mail.transport.protocol","smtp");
        p.put("mail.smtp.host","smtp.gmail.com");
        p.put("mail.smtp.port","465");  
        p.put("mail.smtp.auth","true");
        p.put("mail.smtp.debug","true");
        p.put("mail.smtp.starttls.enable", "true");
        p.put("mail.smtp.ssl.enable", "true");
        p.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
        p.put("mail.smtp.socketFactory.port", "465");
        p.put("mail.smtp.socketFactory.fallback", "false");
        java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        Session s = Session.getInstance(p,new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("user","pass");}});
        Message msg = new MimeMessage(s);
        msg.setFrom(new InternetAddress("toaddr@gmail.com"));
        msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("toAddr@gmail.com"));
        msg.setSentDate(new java.util.Date());
        msg.setSubject("MySub");
        msg.setText("Body");
        Transport.send(msg);
        out.println("Mail sent successfully");
}
catch (Exception e)
{
  //e.printStackTrace();
  System.out.println("Exception : " + e);
  out.println("Exception : " + e);
}


%>

这里发生的一件有趣的事情是,当我通过启动MyEclipse Tomcat服务器并运行代码尝试相同的代码时,它成功发送到我的gmail帐户,因为它是从控制台程序工作。但是当我尝试使用Weblogic 8.0上面的代码时,它再次显示异常“javax.mail.MessagingException:无法连接到SMTP主机:smtp.gmail.com,port:465”。

我不知道出现了什么问题,无论是在代码中还是在服务器中的某些特殊设置中。所以请请专家指导我。 非常感谢,提前。

1 个答案:

答案 0 :(得分:0)

JavaMail FAQ有tips for debugging connection problems

Tomcat和WebLogic是否在同一台机器上运行?可能存在阻止您连接的防火墙或防病毒产品。