我正在開發一個簡單的Web應用程序使用郵件,與MyEclipse8.0.1和Weblogic8.0作爲服務器。以下是我發送電子郵件的代碼,它適用於控制檯,但是當我使用myeclipse和Weblogic運行時,它顯示以下錯誤:MyEclipse中的JavaMail異常:javax.mail.SendFailedException:發送失敗;嵌套異常是:javax.mail.MessagingException:
javax.mail.SendFailedException:發送失敗;嵌套的例外是:javax.mail.MessagingException的:無法連接到SMTP主機:smtp.gmail.com端口: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("[email protected]"));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]"));
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,端口:465」。
我不知道錯在哪裏,無論是在代碼中還是在服務器中的某些特殊設置。所以請高手指點一下。 非常感謝,提前。
我想一些額外的類方法或mail.smtp.xxxx設置可能會丟失,或者可能是,必須有一些設置爲weblogic它可以工作,因爲它與Tomcat與MyEclipse集成在一起很好。?請幫幫我.... – Faizan