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
1. | Servlet JNDI and Bean | ||
2. | JNDI Filter | ||
3. | Web JNDI | ||
4. | Use JNDI to get database connection or data source |