我正在使用 Tika 自动检测被推送到 DMS 的文档的内容类型。除了电子邮件之外,几乎所有东西都可以正常工作。
我必须区分标准邮件消息(mime => message/rfc822)和签名邮件消息(mime => multipart/signed),但所有电子邮件都被检测为 message/rfc822。
未正确检测到的签名邮件具有以下内容类型标头:
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="----4898E6D8BDE1929CA602BE94D115EF4C"
我用于解析的java代码是:
Detector detector;
List<Detector> detectors = new ArrayList<Detector>();
detectors.add(new ZipContainerDetector());
detectors.add(new POIFSContainerDetector());
detectors.add(MimeTypes.getDefaultMimeTypes());
detector = new CompositeDetector(detectors);
String mimetype = detector.detect(TikaInputStream.get(new File(args[0])), new Metadata()).toString();
我正在引用核心库和 tika-parsers 来检测 pdf 和 msword 文档。我还缺少其他东西吗?