-1

java api を介してメールを送信しようとしています。web-inf/lib に activation.jar と mail.jar をコピーしてすべての問題を解決しましたが、それでも例外のセットを下回り、プログラムを実行できません。見てください

**JSP CODE**

   <html>
   <head>
   <title>JSP JavaMail Example </title>
   </head>
   <body>
   <%@ page import="java.util.*" %>
   <%@ page import="javax.mail.*" %>
   <%@ page import="javax.mail.internet.*" %>
   <%@ page import="javax.activation.*" %>
   <%
   String host = "mail.google.com";
   String to = request.getParameter("smzk07@gmail.com");
   String from = request.getParameter("heady.syed@gmail.com");
   String subject = request.getParameter("Create test description");
   String messageText = request.getParameter("hello sir");
   boolean sessionDebug = false;
// Create some properties and get the default Session.
   Properties props = System.getProperties();
   props.put("mail.host", host);
   props.put("mail.transport.protocol", "smtp");
   Session mailSession = Session.getDefaultInstance(props, null);

// Set debug on the Session
// Passing false will not echo debug info, and passing True will.

   mailSession.setDebug(sessionDebug);

// Instantiate a new MimeMessage and fill it with the 
// required information.

   Message msg = new MimeMessage(mailSession);
   msg.setFrom(new InternetAddress(from));
   InternetAddress[] address = {new InternetAddress(to)};
   msg.setRecipients(Message.RecipientType.TO, address);
   msg.setSubject(subject);
   msg.setSentDate(new Date());
   msg.setText(messageText);

// Hand the message to the default transport service
// for delivery.

   Transport.send(msg);
   out.println("Mail was sent to " + to);
   out.println(" from " + from);
                out.println(" using host " + host + ".");
   %>
  </table>
  </body>
  </html>

例外

org.apache.jasper.JasperException: java.lang.NullPointerException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

根本的な原因

java.lang.NullPointerException
    javax.mail.internet.InternetAddress.parse(InternetAddress.java:673)
    javax.mail.internet.InternetAddress.parse(InternetAddress.java:633)
    javax.mail.internet.InternetAddress.<init>(InternetAddress.java:111)
    org.apache.jsp.send_0020mail_jsp._jspService(send_0020mail_jsp.java:97)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

私は JSP と Java テクノロジの初心者です。助けていただければ幸いです。

4

2 に答える 2

2

次の 2 行を見てください。

String to = request.getParameter("smzk07@gmail.com");
String from = request.getParameter("heady.syed@gmail.com");

あなたは、メールアドレスのような名前のパラメーターを取得したいと言っていますが、代わりに、代わりにそれをString from="smzk07@gmail.com";試してください.

于 2012-07-09T06:58:29.513 に答える
0

使用しているパラメータで request.getParameter を使用してもよろしいですか? 投稿したコードに基づいて、リクエストは次のようになります。

bob.com/mail?smzk07@gmail.com=someone@bob.com

(明らかに適切なエスケープコードを使用)

null ポインター例外が発生する理由は、要求しているパラメーター名が設定されていないためです (存在しないパラメーターを要求すると、null の結果が得られます)。

あなたはおそらく次のようなことをしようとしています:

bob.com/mail?from=smzk07@gmail.com&to=....

その場合、次を使用する必要があります。

request.getParameter("from"); request.getParameter("to");

于 2012-07-09T06:57:53.083 に答える