FileDocCategorySizeDatePackage
MailAccessor.javaAPI DocExample3424Sat Jun 21 14:00:18 BST 2003com.jspservletcookbook

MailAccessor

public class MailAccessor extends HttpServlet

Fields Summary
private static final String
DEFAULT_SERVER
Constructors Summary
Methods Summary
private booleancheck(java.lang.String value)

    
        if(value == null || value.equals(""))
            return false;
            
    	return true;
    
private voiddisplayMessage(Message msg, java.io.PrintWriter out)

    
       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 content type: " + msg.getContentType() +"<br />");
          out.println("Message body content: " + (String) msg.getContent());
       } else{
       
            out.println("<h2>The received email message was not of a text content type.</h2>");
       
       }
         
    
public voiddoGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)


         
       
    
    response.setContentType("text/html");
    java.io.PrintWriter out = response.getWriter();
    out.println("<html><head><title>Email Reader</title></head><body>");
     
   handleMessages(request, out);
    
      out.println("</body></html>");
      out.close();
     
private voidhandleMessages(javax.servlet.http.HttpServletRequest request, java.io.PrintWriter out)

    
   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 = MailAccessor.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) { }
    }