javashop.sun.com has used JavaMail for 2.5+ years as
is to send mail messages to anyone who buys or trys
software products ... including the recently *very*
popular star office product.

it is simple, for dispatching mail messages, and works
like a charm in my book.

hope this helps,

- james

Colin Wilson-Salt wrote:
>
> 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

===========================================================================
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