2014-11-08 2 views
2

여러 개의 .pst 파일이 있으며 메일을 보내려는 모든 메일 주소가 필요합니다. 라이브러리의 예제 코드는 파일의 모든 메일을 트래버스 할 수는 있지만 수신자의 메일 주소를 추출하는 데 올바른 getter를 찾을 수 없습니다. 추출 java-libpst를 사용하여 .pst 파일에서 전자 메일 주소를 추출하십시오.

모든 메일을 통과하기 위해, 나는이 사이트에서 코드를 사용 는 https://code.google.com/p/java-libpst/

PSTMessage email = (PSTMessage) folder.getNextChild(); 
while (email != null) { 
    printDepth(); 
    System.out.println("Email: " + email.getSubject()); 
    printDepth(); 
    System.out.println("Adress: " + email.getDisplayTo()); 
    email = (PSTMessage) folder.getNextChild(); 
} 

getDisplayTo() 메소드는 수신자 이름이 아닌 자신의 메일 주소를 표시합니다. 주소를 가져 오기 위해 어떤 게터를 사용해야합니까?

보다도, 마이클

첫 번째 방법

답변

2

: : 사용할 수 게터

getSenderEmailAddress 
getNumberOfRecipients 
getRecipient(int) 

두 번째 방법 : 헤더를 구문 분석하고 이메일 주소를 수집

Session s = Session.getDefaultInstance(new Properties()); 
    InputStream is = new ByteArrayInputStream(a_sHeader.getBytes()); 
    try { 
     m_message = new MimeMessage(s, is); 

     m_message.getAllHeaderLines(); 
     for (Enumeration<Header> e = m_message.getAllHeaders(); e.hasMoreElements();) { 
      Header h = e.nextElement(); 
      // Recipients 
      if (h.getName().equalsIgnoreCase(getHeaderName(RecipientType.REC_TYPE_TO))) { 
       m_RecipientsTo = processAddresses(h.getValue()); 
      } 
      ...    
     } 
    } catch (MessagingException e1) { 
     ...    
    } 
(a_sHeader은 문자열입니다)