【问题标题】:Extract Email adresses from .pst file with java-libpst使用 java-libpst 从 .pst 文件中提取电子邮件地址
【发布时间】:2015-01-05 05:00:15
【问题描述】:

我有几个 .pst 文件,需要所有邮件地址,我发送邮件到。该库的示例代码允许我遍历文件中的每封邮件,但我找不到合适的 getter 来提取收件人的邮件地址。

为了遍历每封邮件,我使用了这个站点的代码: 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 来获取地址?

最好, 迈克尔

【问题讨论】:

    标签: java email pst


    【解决方案1】:

    第一种方法::可用的getter

    getSenderEmailAddress
    getNumberOfRecipients
    getRecipient(int)
    

    第二种方法:解析header并收集邮件地址(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) {
            ...             
        }
    

    【讨论】:

      猜你喜欢
      • 2016-04-12
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 2015-12-28
      • 2014-03-23
      • 2016-01-14
      • 1970-01-01
      相关资源
      最近更新 更多