使用java-libpst从.pst文件中提取电子邮件地址 [英] Extract Email adresses from .pst file with java-libpst

查看:1245
本文介绍了使用java-libpst从.pst文件中提取电子邮件地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有几个.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(地址:+ email.getDisplayTo());
email =(PSTMessage)folder.getNextChild();
}

getDisplayTo()方法仅显示接收者名称,而不显示其邮件地址。
我需要使用什么getter来获取地址?



Best,
Michael

解决方案

第一种方法::可用的getters

  getSenderEmailAddress 
getNumberOfRecipients
getRecipient(int)

第二种方法: / strong>解析标题并收集电子邮件地址(a_sHeader是一个字符串)

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

m_message.getAllHeaderLines();
(枚举< Header> e = m_message.getAllHeaders(); e.hasMoreElements();){
标题h = e.nextElement();
//收件人
if(h.getName()。equalsIgnoreCase(getHeaderName(RecipientType.REC_TYPE_TO))){
m_RecipientsTo = processAddresses(h.getValue());
}
...
}
} catch(MessagingException e1){
...
}


i have several .pst files and need all the mail-addresses, i sent mails to. The example code of the library allows me to traverse every mail in the file, but i can't find the right getter to extract the mail address of the receiver.

To traverse every mail, i use the code from this site: 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();
}

The getDisplayTo() method only displays the receivers names but not their mail addresses. What getter do i need to use to get the addresses?

Best, Michael

解决方案

First method : : available getters

getSenderEmailAddress
getNumberOfRecipients
getRecipient(int)

Second Method : parse the header and collect the email address (a_sHeader is a string)

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

这篇关于使用java-libpst从.pst文件中提取电子邮件地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆