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