Java 如何使用ApacheTika在pst中提取附加邮件的内容
我想使用ApacheTika提取邮件的内容,该内容附加到PST中的另一封邮件。在解析pst时,附加邮件的元数据的X-TIKA:content键没有邮件正文。如何提取附件邮件的正文内容?代码如下: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
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
接收的内容?有关示例,请参见