Java tutorial
import java.io.IOException; import java.io.PrintWriter; import java.util.Properties; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.sun.corba.se.impl.protocol.giopmsgheaders.Message; public class MailAccessor extends HttpServlet { private final static String DEFAULT_SERVER = "mail.attbi.com"; public void doGet(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 Reader</title></head><body>"); handleMessages(request, out); out.println("</body></html>"); out.close(); } //doGet 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 = 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) { } } }//printMessages 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 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>"); } }//displayMessage private boolean check(String value) { if (value == null || value.equals("")) return false; return true; } }