0

MyEclipse8.0.1 と Weblogic8.0 をサーバーとして、メールを使用して単純な Web アプリケーションを開発しています。以下は、電子メールを送信するための私のコードです。コンソールではうまく機能しますが、myeclipse と Weblogic で実行すると、次のエラーが表示されます。

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("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);
}


%>

ここで起こった興味深いことの 1 つは、MyEclipse Tomcat サーバーを起動してコードを実行して同じコードを試したところ、コンソール プログラムから作業していたので、Gmail アカウントに正常に送信されたことです。しかし、Weblogic 8.0 で上記のコードを試してみると、「javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465」という例外が表示されました。

コードであれ、サーバーの特別な設定であれ、何が問題なのかわかりません。ですから、専門家をお願いします、私を導いてください。よろしくお願いします。

4

1 に答える 1

0

JavaMail FAQ には、接続の問題をデバッグするためのヒントがあります

Tomcat と WebLogic は同じマシンで実行されていますか? ファイアウォールまたはウイルス対策製品が接続を妨げている可能性があります。

于 2013-01-07T20:21:33.740 に答える