MimeStreamParser parser = new MimeStreamParser(config, null, new DefaultBodyDescriptorBuilder()); XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
public MimePartParser(Message message, TextExtractor textExtractor) { this.message = message; this.textExtractor = textExtractor; this.builderStack = new LinkedList<>(); this.currentlyBuildMimePart = new RootMimePartContainerBuilder(); this.stream = new MimeTokenStream( MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder()); }
public BodyDescriptorBuilder newChild() { String actualMimeType; ContentTypeField contentTypeField = (ContentTypeField) fields.get(CONTENT_TYPE); if (contentTypeField != null) { actualMimeType = contentTypeField.getMimeType(); } else { if (MimeUtil.isSameMimeType("multipart/digest", parentMimeType)) { actualMimeType = EMAIL_MESSAGE_MIME_TYPE; } else { actualMimeType = DEFAULT_MIME_TYPE; } } return new DefaultBodyDescriptorBuilder(actualMimeType, fieldParser, monitor); }
public static MimeDescriptorImpl build(InputStream stream) throws IOException, MimeException { // Disable line length limit // See https://issues.apache.org/jira/browse/IMAP-132 // final MimeTokenStream parser = new MimeTokenStream(MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder()); parser.parse(stream); // TODO: Shouldn't this get set before we call the parse ? parser.setRecursionMode(RecursionMode.M_NO_RECURSE); return createDescriptor(parser); }
MimeStreamParser parser = new MimeStreamParser(config, null, new DefaultBodyDescriptorBuilder()); XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
public Message parseMessage(final InputStream is) throws IOException, MimeIOException { try { MessageImpl message = newMessageImpl(); MimeConfig cfg = config != null ? config : MimeConfig.DEFAULT; boolean strict = cfg.isStrictParsing(); DecodeMonitor mon = monitor != null ? monitor : strict ? DecodeMonitor.STRICT : DecodeMonitor.SILENT; BodyDescriptorBuilder bdb = bodyDescBuilder != null ? bodyDescBuilder : new DefaultBodyDescriptorBuilder(null, fieldParser != null ? fieldParser : strict ? DefaultFieldParser.getParser() : LenientFieldParser.getParser(), mon); BodyFactory bf = bodyFactory != null ? bodyFactory : new BasicBodyFactory(!strict); MimeStreamParser parser = new MimeStreamParser(cfg, mon, bdb); parser.setContentHandler(new ParserStreamContentHandler(message, bf)); parser.setContentDecoding(contentDecoding); if (flatMode) { parser.setFlat(); } else { parser.setRecurse(); } parser.parse(is); return message; } catch (MimeException e) { throw new MimeIOException(e); } }
public Builder parse(final InputStream is) throws IOException { MimeConfig currentConfig = config != null ? config : MimeConfig.DEFAULT; boolean strict = currentConfig.isStrictParsing(); DecodeMonitor currentMonitor = monitor != null ? monitor : strict ? DecodeMonitor.STRICT : DecodeMonitor.SILENT; BodyDescriptorBuilder currentBodyDescBuilder = bodyDescBuilder != null ? bodyDescBuilder : new DefaultBodyDescriptorBuilder(null, fieldParser != null ? fieldParser : strict ? DefaultFieldParser.getParser() : LenientFieldParser.getParser(), currentMonitor); BodyFactory currentBodyFactory = bodyFactory != null ? bodyFactory : new BasicBodyFactory(!strict); MimeStreamParser parser = new MimeStreamParser(currentConfig, currentMonitor, currentBodyDescBuilder); Message message = new MessageImpl(); parser.setContentHandler(new ParserStreamContentHandler(message, currentBodyFactory)); parser.setContentDecoding(!rawContent); if (flatMode) { parser.setFlat(); } try { parser.parse(is); } catch (MimeException e) { throw new MimeIOException(e); } clearFields(); final List<Field> fields = message.getHeader().getFields(); for (Field field: fields) { addField(field); } setBody(message.getBody()); return this; }
final MimeTokenStream parser = new MimeTokenStream(MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder());