保持session不变就可以啦
以POP3为例,每收一次信,创建一次连接:
store = session.getStore("pop3") ;
store.connect(server, username, password) ;
然后open folder, get mail, close folder
(个人意见,仅供参考)

解决方案 »

  1.   

    我是用servlet做的,上面的方法我试过了,不好使,也不能说是不好使,关键是我不知道怎么把session传到下一个要用到也面中去。两个servlet如下:
    ---------------------------------------------------------------
    servlet1:
    ---------
    public class recievemail extends HttpServlet
    {
    public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
    {
         response.setContentType("text/html");
         String host="16.120.3.23";
         String username=request.getParameter("username");
         String password=request.getParameter("password");
         PrintWriter out=response.getWriter();
        out.println("<html><body>ok!");
      try
      { // Create empty properties
      Properties props = new Properties();  // Get session
      Session session = Session.getDefaultInstance(props, null);
      out.println("ok1");  // Get the store
      Store store = session.getStore("pop3");
      out.println("ok2");
      
      
      store.connect(host, username, password);  // Get folder
      Folder folder=store.getFolder("INBOX");
      folder.open(Folder.READ_WRITE);
      // Get directory
      Message message[] = folder.getMessages();
      out.println("<table border bordercolor=White width=\"80%\">"+
       "<tr ><th  align=center bgcolor=\"Fuchsia\" size=\"50\">From</th><th width=\"50%\" bgcolor=\"Fuchsia\" width=\"50%\">Subject</th></tr>");  for (int i=0, n=message.length; i<n; i++) 
      {
      
     out.println("<tr><td align=center>"+message[i].getFrom()[0]+"</td>"
              +"<td align=center><a href=http://localhost:8080/examples/servlet/showcontent?number="+i+">"+message[i].getSubject()+"</a></td></tr>");
             
              message[i].setFlag(Flags.Flag.DELETED, true);
               
              }
              out.println("</table>");
              
                out.println("<a href=\"http://localhost:8080/examples/jsp/editmail.html\">撰写邮件</a>");
                out.println("</body>"+"</html>");
        
              // Close connection
                            
             folder.close(false);
              store.close();
             }catch(IllegalStateException ex)
             {
              out.println("chu cuo!");
             
             }
             catch(MessagingException e)
             {
              out.println("my god!");
             }
             
          }
    }
    -----------------------------------------------------------
    servlet2:
    ---------
    public class showcontent extends HttpServlet
    {
    public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
    {
      String host="16.120.3.23";
      String username="username";
      String password="password";
      OutputStream output=response.getOutputStream();
      DataOutputStream out=new DataOutputStream(output);
      String num=request.getParameter("number");
      int numbers=Integer.parseInt(num);
      
    try
      {
        // Get the store
      Store store = session.getStore("pop3");
      
      store.connect(host, username, password);  // Get folder
      Folder folder=store.getFolder("INBOX");
      folder.open(Folder.READ_ONLY);  // Get directory
      Message message[] = folder.getMessages();
      out.writeChars("<html><body>");
     out.writeChars((String)message[numbers].getContent());
     out.writeChars("</html></body>");        
                
                
        
              // Close connection
              
              folder.close(false);
              store.close();
             }catch(Exception ex)
             {
              }
             
             }
          }