Mega Code Archive

 
Categories / Java / Servlets
 

Email JNDI Filter

import java.io.IOException; import java.io.PrintWriter; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException;   import javax.mail.*; import javax.mail.internet.*; import javax.servlet.*; import javax.servlet.http.*; public class EmailJndiServlet extends HttpServlet {   private Session mailSession;   public void init() throws ServletException {                   Context env = null;             try{                          env = (Context) new InitialContext();                            mailSession = (Session) env.lookup("MyEmail");                            if (mailSession == null)                  throw new ServletException(                    "MyEmail is an unknown JNDI object");                                  //close the InitialContext              env.close();                       } catch (NamingException ne) {                     try{ env.close();} catch (NamingException nex) { }                     throw new ServletException(ne);         }            }   public void doPost(HttpServletRequest request,        HttpServletResponse response) throws ServletException,           java.io.IOException {            response.setContentType("text/html");       java.io.PrintWriter out = response.getWriter();       out.println(       "<html><head><title>Email message sender</title></head><body>");             String to = request.getParameter("to");           String from = request.getParameter("from");       String subject = request.getParameter("subject");       String emailContent = request.getParameter("emailContent");                 try{                  sendMessage(to,from,subject,emailContent);                  } catch(Exception exc){                  throw new ServletException(exc.getMessage());                  }                   out.println(         "<h2>The message was sent successfully</h2></body></html>");          out.println("</body></html>");     out.close();      } //doPost            public void doGet(HttpServletRequest request,        HttpServletResponse response) throws ServletException,           java.io.IOException {                          doPost(request,response);                }         private void sendMessage(String to, String from,String subject,      String bodyContent) throws Exception {            Message mailMsg = null;              synchronized(mailSession){                   mailMsg = new MimeMessage(mailSession);//a new email message        }        InternetAddress[] addresses = null;             try {                  if (to != null) {                          //throws 'AddressException' if the 'to' email address                 //violates RFC822 syntax                 addresses = InternetAddress.parse(to, false);                 mailMsg.setRecipients(Message.RecipientType.TO, addresses);                       } else {                           throw new MessagingException(                      "The mail message requires a 'To' address.");                      }                   if (from != null)            mailMsg.setFrom(new InternetAddress(from));                    if (subject != null)                mailMsg.setSubject(subject);            if (bodyContent != null)                mailMsg.setText(bodyContent);                     //Finally, send the mail message; throws a 'SendFailedException'             //if any of the message's recipients have an invalid adress            Transport.send(mailMsg);                      } catch (Exception exc) {                      throw exc;            }     }//sendMessage      }//EmailJndiServlet