Mega Code Archive

 
Categories / Java / Servlets
 

Email Bean

import java.io.IOException; import java.io.PrintWriter; import java.util.Properties; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Store; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; public class EmailBean {   //defaults   private final static String DEFAULT_CONTENT = "Unknown content";   private final static String DEFAULT_SUBJECT = "Unknown subject";   private static String DEFAULT_SERVER = null;   private static String DEFAULT_TO = null;   private static String DEFAULT_FROM = null;   static {     java.util.ResourceBundle bundle = java.util.ResourceBundle         .getBundle("com.rntsoft.mailDefaults");     DEFAULT_SERVER = bundle.getString("DEFAULT_SERVER");     DEFAULT_TO = bundle.getString("DEFAULT_TO");     DEFAULT_FROM = bundle.getString("DEFAULT_FROM");     System.out.println("DEFAULT_SERVER: " + DEFAULT_SERVER);   }   //JavaBean properties   private String smtpHost;   private String to;   private String from;   private String content;   private String subject;   public void sendMessage() throws Exception {     Properties properties = System.getProperties();     //populate the 'Properties' object with the mail     //server address, so that the default 'Session'     //instance can use it.     properties.put("mail.smtp.host", smtpHost);     Session session = Session.getDefaultInstance(properties);     Message mailMsg = new MimeMessage(session);//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));       } else {         throw new MessagingException(             "The mail message requires a valid 'From' address.");       }       if (subject != null)         mailMsg.setSubject(subject);       if (content != null)         mailMsg.setText(content);       //Finally, send the mail message; throws a 'SendFailedException'       //if any of the message's recipients have an invalid address       Transport.send(mailMsg);     } catch (Exception exc) {       throw exc;     }   }//sendMessage   private void handleMessages(HttpServletRequest request, PrintWriter out)       throws IOException, ServletException {     HttpSession httpSession = request.getSession();     String user = (String) httpSession.getAttribute("user");     String password = (String) httpSession.getAttribute("pass");     String popAddr = (String) httpSession.getAttribute("pop");     Store popStore = null;     Folder folder = null;     if (!check(popAddr))       popAddr = EmailBean.DEFAULT_SERVER;     try {       if ((!check(user)) || (!check(password)))         throw new ServletException(             "A valid username and password is required to check email.");       Properties properties = System.getProperties();       Session session = Session.getDefaultInstance(properties);       popStore = session.getStore("pop3");       popStore.connect(popAddr, user, password);       folder = popStore.getFolder("INBOX");       if (!folder.exists())         throw new ServletException(             "An 'INBOX' folder does not exist for the user.");       folder.open(Folder.READ_ONLY);       Message[] messages = folder.getMessages();       int msgLen = messages.length;       if (msgLen == 0)         out             .println("<h2>The INBOX folder does not yet contain any email messages.</h2>");       for (int i = 0; i < msgLen; i++) {         displayMessage(messages[i], out);         out.println("<br /><br />");       }     } catch (Exception exc) {       out           .println("<h2>Sorry, an error occurred while accessing the email messages.</h2>");       out.println(exc.toString());     } finally {       try {         if (folder != null)           folder.close(false);         if (popStore != null)           popStore.close();       } catch (Exception e) {       }     }   }//handleMessages   private void displayMessage(Message msg, PrintWriter out)       throws MessagingException, IOException {     if (msg != null && msg.getContent() instanceof String) {       if (msg.getFrom()[0] instanceof InternetAddress) {         out.println("Message received from: "             + ((InternetAddress) msg.getFrom()[0]).getAddress()             + "<br />");       }       out.println("Message received on: " + msg.getReceivedDate()           + "<br />");       out.println("Message content type: " + msg.getContentType()           + "<br />");       out.println("Message content type: " + (String) msg.getContent());     } else {       out           .println("<h2>The received email message was not of a text content type.</h2>");     }   }//displayMessage   public void setSmtpHost(String host) {     if (check(host)) {       this.smtpHost = host;     } else {       this.smtpHost = EmailBean.DEFAULT_SERVER;     }   }//setTo   public void setTo(String to) {     if (check(to)) {       this.to = to;     } else {       this.to = EmailBean.DEFAULT_TO;     }   }//setTo   public void setFrom(String from) {     if (check(from)) {       this.from = from;     } else {       this.from = EmailBean.DEFAULT_FROM;     }   }//setFrom   public void setContent(String content) {     if (check(content)) {       this.content = content;     } else {       this.content = EmailBean.DEFAULT_CONTENT;     }   }//setContent   public void setSubject(String subject) {     if (check(subject)) {       this.subject = subject;     } else {       this.subject = EmailBean.DEFAULT_SUBJECT;     }   }//setSubject   private boolean check(String value) {     if (value == null || value.equals(""))       return false;     return true;   } }