2014-05-22 3 views
0

멀티 파트 전자 메일의 내용을 가져 오는 코드를 작성했습니다 ...이 오류가 나타납니다 ...이 오류는 매우 어리석은 것으로 알고 있지만 몇 시간 후에는 얻을 수 없습니다. 디버깅 ... 같은 아마 바보 오류, 등} 코드 :전자 메일 내용을 가져 오는 중 오류가 발생했습니다.

import java.io.*; 
import java.util.*; 
import javax.mail.*; 
import javax.mail.Flags.Flag; 
import javax.mail.internet.*; 
import javax.mail.internet.MimeMessage; 
import com.sun.mail.imap.IMAPFolder; 
import com.sun.mail.imap.IMAPMessage; 
import com.sun.mail.imap.IMAPNestedMessage; 



private String getText(Part p) throws MessagingException, IOException { 


    if (p.isMimeType("multipart/alternative")) { 
     // prefer html text over plain text 
     Multipart mp = (Multipart)p.getContent(); 
     String text = null; 
     for (int i = 0; i < mp.getCount(); i++) { 
      Part bp = mp.getBodyPart(i); 
      if (bp.isMimeType("text/plain")) { 
       if (text == null) 
        text = getText(bp); 
       continue; 
      } else if (bp.isMimeType("text/html")) { 
       String s = getText(bp); 
       if (s != null) 
        return s; 
      } else { 
       return getText(bp); 
      } 
     } 
     return text; 
    } else if (p.isMimeType("multipart/*")) { 
     Multipart mp = (Multipart)p.getContent(); 
     for (int i = 0; i < mp.getCount(); i++) { 
      String s = getText(mp.getBodyPart(i)); 
      if (s != null) 
       return s; 
     } 
    } 
    else 
    { return p.getContent().toString();} 
    return null; 
} 

public class FolderFetch3 { 


public static void main(String[] args) throws MessagingException, IOException { 
    IMAPFolder folder = null; 
    Store store = null; 
    String subject = null; 
    Flag flag = null; 




    try 
    { 
     Properties props = System.getProperties(); 
     props.setProperty("mail.store.protocol", "imaps"); 

     Session session = Session.getDefaultInstance(props, null); 

     store = session.getStore("imaps"); 
     store.connect("imap.gmail.com","[email protected]", "[email protected]"); 

     //folder = (IMAPFolder) store.getFolder("[Gmail]/Spam"); // This doesn't work for other email account 
     folder = (IMAPFolder) store.getFolder("inbox"); //This works for both email account 


     if(!folder.isOpen()) 
     folder.open(Folder.READ_WRITE); 
     Message[] messages = folder.getMessages(); 
     System.out.println("No of Messages : " + folder.getMessageCount()); 
     System.out.println("No of Unread Messages : " + folder.getUnreadMessageCount()); 
     System.out.println(messages.length); 
     for (int i=messages.length-1; i > messages.length-10;i--) 
     { 

     System.out.println("*****************************************************************************"); 
     System.out.println("MESSAGE " + (i + 1) + ":"); 
     MimeMessage msg = (MimeMessage)messages[i]; 
     //System.out.println(msg.getMessageNumber()); 
     //Object String; 
     //System.out.println(folder.getUID(msg) 
     //String n =messages[i]; 
     subject = msg.getSubject(); 

     System.out.println("Subject: " + subject); 
     System.out.println("From: " + msg.getFrom()[0]); 
     System.out.println("To: "+msg.getAllRecipients()[0]); 
     System.out.println("Date: "+msg.getReceivedDate()); 
     System.out.println("Size: "+msg.getSize()); 
     System.out.println(msg.getMessageID()); 
     System.out.println(msg.getFlags()); 
     String tex=getText(msg); 
     System.out.println("Body: \n"+ tex); 
     System.out.println(msg.getContentType()); 

     } 
    } 
    finally 
    { 
     if (folder != null && folder.isOpen()) { folder.close(true); } 
     if (store != null) { store.close(); } 
    } 

} 



} 

나는이 오류가 무엇입니까 :

FolderFetch3.java:17: error: class, interface, or enum expected 
    private String getText(Part p) throws MessagingException, IOException { 
      ^
FolderFetch3.java:23: error: class, interface, or enum expected 
      String text = null; 
      ^
FolderFetch3.java:24: error: class, interface, or enum expected 
      for (int i = 0; i < mp.getCount(); i++) { 
      ^
FolderFetch3.java:24: error: class, interface, or enum expected 
      for (int i = 0; i < mp.getCount(); i++) { 
          ^
FolderFetch3.java:24: error: class, interface, or enum expected 
      for (int i = 0; i < mp.getCount(); i++) { 
              ^
FolderFetch3.java:26: error: class, interface, or enum expected 
       if (bp.isMimeType("text/plain")) { 
       ^
FolderFetch3.java:29: error: class, interface, or enum expected 
        continue; 
        ^
FolderFetch3.java:30: error: class, interface, or enum expected 
       } else if (bp.isMimeType("text/html")) { 
       ^
FolderFetch3.java:32: error: class, interface, or enum expected 
        if (s != null) 
        ^
FolderFetch3.java:34: error: class, interface, or enum expected 
       } else { 
       ^
FolderFetch3.java:36: error: class, interface, or enum expected 
       } 
       ^
FolderFetch3.java:39: error: class, interface, or enum expected 
     } else if (p.isMimeType("multipart/*")) { 
     ^
FolderFetch3.java:41: error: class, interface, or enum expected 
      for (int i = 0; i < mp.getCount(); i++) { 
      ^
FolderFetch3.java:41: error: class, interface, or enum expected 
      for (int i = 0; i < mp.getCount(); i++) { 
          ^
FolderFetch3.java:41: error: class, interface, or enum expected 
      for (int i = 0; i < mp.getCount(); i++) { 
              ^
FolderFetch3.java:43: error: class, interface, or enum expected 
       if (s != null) 
       ^
FolderFetch3.java:45: error: class, interface, or enum expected 
      } 
      ^
FolderFetch3.java:48: error: class, interface, or enum expected 
     { return p.getContent().toString();} 
             ^
FolderFetch3.java:50: error: class, interface, or enum expected 
} 

^

답변

0

이를 넣어클래스 내의메서드

+0

고맙습니다 ... :) – cooljohny