Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用ApacheTika在pst中提取附加邮件的内容_Java_Apache Tika - Fatal编程技术网

Java 如何使用ApacheTika在pst中提取附加邮件的内容

Java 如何使用ApacheTika在pst中提取附加邮件的内容,java,apache-tika,Java,Apache Tika,我想使用ApacheTika提取邮件的内容,该内容附加到PST中的另一封邮件。在解析pst时,附加邮件的元数据的X-TIKA:content键没有邮件正文。如何提取附件邮件的正文内容?代码如下: public void parsePSTfile(File file) throws IOException, TikaException, org.xml.sax.SAXException { Parser p = new AutoDetectParser(); RecursiveP

我想使用ApacheTika提取邮件的内容,该内容附加到PST中的另一封邮件。在解析pst时,附加邮件的元数据的X-TIKA:content键没有邮件正文。如何提取附件邮件的正文内容?代码如下:

public void parsePSTfile(File file) throws IOException, TikaException, org.xml.sax.SAXException 
{
    Parser p = new AutoDetectParser();
    RecursiveParserWrapper wrapper = new RecursiveParserWrapper(p,
            new BasicContentHandlerFactory(
                    BasicContentHandlerFactory.HANDLER_TYPE.XML, -1));

    InputStream stream = TikaInputStream.get(file);
    ParseContext context = new ParseContext();

    wrapper.parse(stream, new DefaultHandler(), new Metadata(), context);

    for (Metadata metadata : wrapper.getMetadata()) {

            for (String name : metadata.names()) {

                for (String value : metadata.getValues(name)) {
                    if (name.equalsIgnoreCase("Message-From"))
                        //set value in required object
                    if ("X-TIKA:content".equalsIgnoreCase(name)) {
                    //Here extracting the message body
                        AutoDetectParser parser = new AutoDetectParser();
                        ContentHandler textHandler = new BodyContentHandler();
                        Metadata xmetadata = new Metadata();
                        InputStream inputStream = new ByteArrayInputStream(value.getBytes("UTF-8"));
                        new HtmlParser().parse(inputStream,textHandler,xmetadata,new ParseContext());
                        //set value of textHandler.toString()in required object
                    }
                }

            }

        }

    }

你怎么称呼阿帕奇·蒂卡?JAVA如果是,请张贴代码。服务器还是CLI?如果是,请发布所使用的选项/URL。已添加代码。为什么不捕获从ContentHandler接收的内容?有关示例,请参见