Try it:(To http://jakarta.apache.org download TOmcat4.* Version and Install)
1.C:\tmp\test Directory Create a class SendMailServlet.javaimport javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import sun.net.smtp.*;public class SendMailServlet extends HttpServlet {
  public static String MAIL_FROM = "from";
  public static String MAIL_TO = "to";
  public static String MAIL_SUBJECT = "subject";
  public static String MAIL_BODY = "body";
  public static String MAIL_HOST = "mailhost";
  public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.setContentType("text/html; charset=BIG5");
    PrintWriter out = resp.getWriter();
    out.println("<form method=POST action=\"" + req.getRequestURI() + "\">");
    out.println("<table>");
    out.println("<tr><td>send mail server:</td>");
    out.println("<td><input type=text name=" + MAIL_HOST + " size=30></td></tr>");
    out.println("<tr><td>from:</td>");
    out.println("<td><input type=text name=" + MAIL_FROM + " size=30></td></tr>");
    out.println("<tr><td>to:</td>");
    out.println("<td><input type=text name=" + MAIL_TO + " size=30></td></tr>");
    out.println("<tr><td>subject:</td>");
    out.println("<td><input type=text name=" + MAIL_SUBJECT + " size=30></td></tr>");
    out.println("<tr><td>text:</td>");
    out.println("<td><textarea name=" + MAIL_BODY + " cols=40 rows=10></textarea></td></tr>");
    out.println("</table><br/>");
    out.println("<input type=submit value=\"Send\">");
    out.println("<input type=reset value=\"Reset\">");
    out.println("</form>");
    out.flush();
  }  public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
    resp.setContentType("text/html; charset=gb2312");
    PrintWriter out = new PrintWriter(resp.getOutputStream());
    String from = req.getParameter(MAIL_FROM);
    String to = req.getParameter(MAIL_TO);
    String subject = req.getParameter(MAIL_SUBJECT);
    String body = req.getParameter(MAIL_BODY);
    String mailhost = req.getParameter(MAIL_HOST);
    try {
      SmtpClient mailer = new SmtpClient(mailhost);
      mailer.from(from);
      mailer.to(to);
      PrintStream ps = mailer.startMessage();
      ps.println("From: " + from);
      ps.println("To: " + to);
      ps.println("Subject: " + subject);
      ps.println(body);
      mailer.closeServer();
      out.println("Success!");
    }
    catch (Exception ex)
    {
      out.println("An error about:" + ex.getMessage());
    }
    out.flush();
  }  public void init(ServletConfig cfg) throws ServletException {
    super.init(cfg);
  }
  public void destroy() {
    super.destroy();
  }
}2.C:\tmp\test>dir
 磁碟区 C 中的磁碟没有标签。
 磁碟区序号:  98D4-FB0A 目录:  C:\tmp\test2003/02/08  01:49p      <DIR>          .
2003/02/08  01:49p      <DIR>          ..
2003/02/07  07:23p                 881 HelloWorld2.class
2003/02/07  07:17p                 741 HelloWorld2.java
2003/02/08  01:49p               2,663 SendMailServlet.java <==========================
               3 个档案           4,285 位元组
               2 个目录   6,969,479,168 位元组可用C:\tmp\test>set classpath=.;D:\Tomcat 4.1\common\lib\servlet.jarC:\tmp\test>javac SendMailServlet.javaC:\tmp\test>dir
 磁碟区 C 中的磁碟没有标签。
 磁碟区序号:  98D4-FB0A 目录:  C:\tmp\test2003/02/08  01:53p      <DIR>          .
2003/02/08  01:53p      <DIR>          ..
2003/02/07  07:23p                 881 HelloWorld2.class
2003/02/07  07:17p                 741 HelloWorld2.java
2003/02/08  01:53p               3,040 SendMailServlet.class <==========================
2003/02/08  01:49p               2,663 SendMailServlet.java
               4 个档案           7,325 位元组
               2 个目录   6,969,475,072 位元组可用C:\tmp\test>
Copy SendMailServlet.class to D:\Tomcat 4.1\webapps\newproject\WEB-INF\classes\SendMailServlet.class3.Config Tomcat:
  1.D:\Tomcat 4.1\webapps add a new directory newproject
    D:\Tomcat 4.1\webapps\newproject\WEB-INF
    D:\Tomcat 4.1\webapps\newproject\WEB-INF\classes\SendMailServlet.class
    D:\Tomcat 4.1\webapps\newproject\WEB-INF\web.xml
=>Detail:
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>      
    <servlet>  
       <servlet-name>test2</servlet-name>  
       <servlet-class>SendMailServlet</servlet-class>  
    </servlet>  
    <servlet-mapping>  
       <servlet-name>test2</servlet-name>  
       <url-pattern>/servlet/SendMailServlet</url-pattern>  
    </servlet-mapping>
</web-app>4. Start Tomcat
   Run:
   http://localhost:8080/newproject/servlet/SendMailServlet

解决方案 »

  1.   

    3.Config Tomcat:
      a.D:\Tomcat 4.1\webapps add a new directory newproject => create a directory in D:\Tomcat 4.1\webapps called newproject => D:\Tomcat 4.1\webapps\newproject 
      b.D:\Tomcat 4.1\webapps\newproject\WEB-INF => create a directory in D:\Tomcat 4.1\webapps\newproject called WEB-INF
      c.WEB-INF directory have web.xml file detail reference below.
      d.D:\Tomcat 4.1\webapps\newproject\WEB-INF\classes\SendMailServlet.class => create a directory in D:\Tomcat 4.1\webapps\newproject\WEB-INF\classes called classes
      e.classes directory can put javabean& servlet. this example with SendMailServlet.class 
        D:\Tomcat 4.1\webapps\newproject\WEB-INF\web.xml
    =>web.xml Detail:
    <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>      
        <servlet>  
           <servlet-name>test2</servlet-name>  
           <servlet-class>SendMailServlet</servlet-class>  
        </servlet>  
        <servlet-mapping>  
           <servlet-name>test2</servlet-name>  
           <url-pattern>/servlet/SendMailServlet</url-pattern>  
        </servlet-mapping>
    </web-app>4. Start Tomcat
       Run:
       http://localhost:8080/newproject/servlet/SendMailServlet5. If any question keep in touch with short message or whatever...