2014-11-08 213 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()方法只顯示接收機名稱而不是他們的郵件地址。 我需要使用什麼getter來獲取地址?

最佳, 邁克爾

回答

2

第一種方法::可用干將

getSenderEmailAddress 
getNumberOfRecipients 
getRecipient(int) 

第二種方法:解析頭和收集的電子郵件地址(a_sHeader是一個字符串)

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) { 
     ...    
    }