怎么用jsp接收Email中的附件???
在此谢过了!!!!

解决方案 »

  1.   

    package org.redtroy;import javax.mail.*;
    import java.util.Properties;
    import java.io.*;
    import javax.mail.internet.MimeBodyPart;
    public class MailReader {
      static Store store;
      static Folder folder;
      public MailReader() {
      }  public static Message[] getMessages(String host, String username, String psw) throws
          Exception {
        Properties p = System.getProperties();
        Session session = Session.getDefaultInstance(p, null);
       // session.setDebug(true);
        store = session.getStore("pop3"); //pop3 or IMAP here
        store.connect(host, username, psw);
        folder = store.getFolder("INBOX");
        folder.open(Folder.READ_ONLY);
        return folder.getMessages();
      }  public static void readMessage(Message m) throws Exception {
        Multipart mp = (Multipart) m.getContent();
        for (int j = 0; j < mp.getCount(); j++) {
          Part part = mp.getBodyPart(j);
          String disposition = part.getDisposition();
          if (disposition != null) {
            if (disposition.equals(Part.ATTACHMENT) ||
                disposition.equals(Part.INLINE)) {
              InputStream in = part.getInputStream();
              //System.out.println("FileName:"+Base64.decode(part.getFileName()));
              write2File(in,"C:\\"+part.getFileName());//parg.getFileName()需要进行处理后用base64解码
              in.close();
            }
          }
          if(disposition==null){
            MimeBodyPart mbp=(MimeBodyPart)part;
            if(mbp.isMimeType("text/plain")){
              System.out.println("该邮件内容:");
              System.out.println( ((String)mbp.getContent()));
            }
          }
        }
      }  public  static void write2File(InputStream in, String path) throws Exception {
        byte[] b = new byte[100];
        int len;
        OutputStream out=new FileOutputStream(new File(path));
        while ( (len = in.read(b)) > 0) {
          out.write(b,0,len);
        }
        out.close();
      }  public static void close() throws Exception {
        folder.close(false);
        store.close();
      }  public static void main(String[] args) {
        try {
          Message[] messages = MailReader.getMessages("pop3.126.com", "redtroy",
                                                      "ZagHnJ82");
          BufferedReader reader = new BufferedReader(new InputStreamReader(System.
              in));
          for (int i = 0; i < messages.length; i++) {
            System.out.println("来自:" + messages[i].getFrom() + "-----主题:" +
                               messages[i].getSubject());
            //  System.out.println("是否显示该邮件内容[yes显示no不显示]");
            MailReader.readMessage(messages[i]);
            //  String cmd=reader.readLine();
            /* if(cmd.equalsIgnoreCase("yes")){
               messages[i].writeTo(System.out);
               }
             }else if(cmd.equalsIgnoreCase("no")){
               continue;
             }*/
          }
          MailReader.close();
        }
        catch (Exception e) {
          e.printStackTrace();
        }
      }}
      

  2.   

    Base64
    请访问我的blog
    http://blog.donews.com/redtroy/archive/2005/09/05/540852.aspx