OK, I take back what I said about JavaMail being heavy. But a related question, is
the implementation from Sun a complete, production quality release, or is it a base
level implementation for which you have to buy other people's extensions to make
work?

David Wall wrote:

> > You don't need anything as heavy as JavaMail to do something as simple as
> this -
> > just open a connection to port 25 of your mail server and talk SMTP
> protocol to it.
> > About 50 lines of code would do it, and there will be plenty of examples
> around to
> > copy from.
>
> Don't do it. JavaMail is very easy to use and why it would be considered
> heavy is beyond my understanding.  This is a rather simplified, not entirely
> elegant version we use for our low-tech testing, but it has the main parts
> to make it more parameterized, etc.
>
> // Copyright (c) 1999 ExperTrade Corporation.  All rights reserved.
> // This file is proprietary and confidential.
>
> package com.expertrade.servlet;
>
> import java.util.Properties;
>
> import javax.mail.Message;
> import javax.mail.Session;
> import javax.mail.Transport;
> import javax.mail.internet.InternetAddress;
> import javax.mail.internet.MimeMessage;
>
> import javax.servlet.*;
> import javax.servlet.http.*;
>
> /**
>  * This accepts a page and sends an email with the relevant info via email.
>  *
>  * @author David Wall
>  */
> public class FormEmailer
>     extends    HttpServlet
> {
>     public void doGet(HttpServletRequest req, HttpServletResponse res)
>      throws ServletException, java.io.IOException
>     {
>         doPost( req, res );
>     }
>
>     public void doPost(HttpServletRequest req, HttpServletResponse res)
>      throws ServletException, java.io.IOException
>     {
>         res.setStatus(HttpServletResponse.SC_NO_CONTENT);
>
>         // Get the two required parameters
>         String [] requestedDataArray = null;
>
>         requestedDataArray = req.getParameterValues(PARAM_EMAIL_TO);
>         if ( requestedDataArray == null )
>             throw new ServletException("Missing parameter: " +
> PARAM_EMAIL_TO);
>         String emailTo = requestedDataArray[0];
>
>         requestedDataArray = req.getParameterValues(PARAM_EMAIL_SUBJECT);
>         if ( requestedDataArray == null )
>             throw new ServletException("Missing parameter: " +
> PARAM_EMAIL_SUBJECT);
>         String emailSubject = requestedDataArray[0];
>
>      InternetAddress[] toAddresses = new InternetAddress[1];
>         try
>         {
>             toAddresses[0] = new InternetAddress(emailTo);
>         }
>         catch( javax.mail.internet.AddressException e )
>         {
>             throw new ServletException("Invalid email TO address: " +
> emailTo + " - " + e.getMessage() );
>         }
>
>         // Get all of the form fields...
>         java.util.Enumeration params = req.getParameterNames();
>
>         StringBuffer message = new StringBuffer(1000);
>
>         message.append("TO: ").append(emailTo).append("\n");
>         message.append("SUBJECT: ").append(emailSubject).append("\n\n");
>
>         while( params.hasMoreElements() )
>         {
>             String name = (String)params.nextElement();
>             if ( name.equals(PARAM_EMAIL_TO) ||
> name.equals(PARAM_EMAIL_SUBJECT) )
>                 continue;
>
>             requestedDataArray = req.getParameterValues(name);
>             if ( requestedDataArray != null )
>             {
>                 message.append(name).append(": ");
>                 if ( requestedDataArray.length > 0 )
>                 {
>                     for( int i=0; i < requestedDataArray.length; ++i )
>                     {
>                         if ( i != 0 )
>                             message.append("      ");
>                         message.append(requestedDataArray[i]).append("\n");
>                     }
>                 }
>                 else
>                     message.append("\n");
>             }
>         }
>
>         message.append("\n");
>         message.append("\nRemote user:
> ").append(req.getRemoteUser()).append("\n");
>         message.append("Remote address:
> ").append(req.getHeader("REMOTE_ADDR")).append("\n");
>         message.append("Remote host:
> ").append(req.getHeader("REMOTE_HOST")).append("\n");
>         message.append("Browser:
> ").append(req.getHeader("User-Agent")).append("\n").append("<EOM>\n");
>
>         // Register them
>         prepareEmail(req,res,toAddresses,emailSubject,message.toString());
>     }
>
>     public String getServletInfo()
>     {
>         return "FormEmailer, Version 1.0 (14FEB99), ExperTrade Corporation";
>     }
>
>     /**
>      * Called whenever the servlet is installed into the web server.
>      */
>     public void init( ServletConfig config )
>         throws ServletException
>     {
>         try
>         {
>             fromAddress = new InternetAddress("[EMAIL PROTECTED]");
> // use a resource parameter instead!
>         }
>         catch( javax.mail.internet.AddressException e )
>         {
>             throw new ServletException("Invalid from email address: " +
> e.getMessage() );
>         }
>
>         String smtpServer = config.getInitParameter(PARAM_SMTP_SERVER);
>         if ( smtpServer == null )
>             throw new ServletException("Missing servlet parameter: " +
> PARAM_SMTP_SERVER);
>
>         Properties prop = new Properties();
>         prop.put("mail.smtp.host",smtpServer);
>         session = Session.getDefaultInstance(prop,null);
>
>         super.init(config);
>     }
>
>     /**
>      * Called whenever the servlet is removed from the web server.
>      */
>     public void destroy()
>     {
>         session = null;
>         super.destroy();
>     }
>
>     void prepareEmail( HttpServletRequest  req,
>                        HttpServletResponse res,
>                        InternetAddress[] toAddresses,
>                        String subject,
>                        String message
>                      )
>      throws ServletException, java.io.IOException
>     {
>         boolean isOkay = true;
>
>         res.setContentType("text/html");
>         res.setHeader("pragma", "no-cache");
>         ServletOutputStream out = res.getOutputStream();
>
>         writeHeader(out);
>
>             try
>             {
>                 if ( ! sendEmail( toAddresses, subject, message ) )
>                 {
>                     throw new java.io.IOException("Failed to send email");
>                 }
>             }
>             catch(java.io.IOException e)
>             {
>                 if ( isOkay )
>                     out.println("<H1>Sorry!</H1>");
>                 out.println("<P>We were unable to record your information.
> Please try again later.");
>                 isOkay = false;
>             }
>
>         if ( isOkay )
>         {
>             out.println("<H1>Thank you!</H1>");
>             out.println("<P>This form has been submitted successfully.");
>         }
>
>         writeFooter(out);
>     }
>
>     boolean sendEmail( InternetAddress[] toAddresses,
>                        String subject,
>                        String message
>                      )
>      throws ServletException, java.io.IOException
>     {
>
>         try
>         {
>             Message msg = new MimeMessage(session);
>
>             msg.setFrom(fromAddress);
>             msg.setRecipients(Message.RecipientType.TO, toAddresses);
>             msg.setSubject(subject);
>             msg.setContent(message, "text/plain" );
>
>             Transport.send( msg );
>             return true;
>         }
>         catch( javax.mail.MessagingException e )
>         {
>             throw new java.io.IOException("Failed to send Email: " +
> e.getMessage());
>         }
>     }
>
> // ******************  Instance variables *******************
>     private Session           session       = null;
>     private InternetAddress   fromAddress   = null;
>
>     private static final String NBSP   = "&nbsp;";
>     private static final String GREEN  = "\"#009900\"";
>     private static final String RED    = "\"#FF0000\"";
>     private static final String BLACK  = "\"#000000\"";
>
>     // HTML PARAM required fields
>     private static final String PARAM_EMAIL_TO      = "EmailTo";
>     private static final String PARAM_EMAIL_SUBJECT = "EmailSubject";
>
>     // Servlet INIT param
>     private static final String PARAM_SMTP_SERVER   = "smtpServer";
>
> } // FormEmailer
>
> // eof: FormEmailer.java
>
> ===========================================================================
> To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
> FAQs on JSP can be found at:
>  http://java.sun.com/products/jsp/faq.html
>  http://www.esperanto.org.nz/jsp/jspfaq.html

===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
FAQs on JSP can be found at:
 http://java.sun.com/products/jsp/faq.html
 http://www.esperanto.org.nz/jsp/jspfaq.html

Reply via email to