/** * Enables flat mode. In flat mode rfc822 parts are not recursively * parsed and multipart content is handled as a single "simple" stream. */ public void setFlat() { mimeTokenStream.setRecursionMode(RecursionMode.M_FLAT); }
/** * Enables raw mode. In raw mode all future entities (messages * or body parts) in the stream will be reported to the * {@link ContentHandler#raw(InputStream)} handler method only. * The stream will contain the entire unparsed entity contents * including header fields and whatever is in the body. */ public void setRaw() { mimeTokenStream.setRecursionMode(RecursionMode.M_RAW); }
/** * Enables recursive mode. In this mode rfc822 parts are recursively * parsed. */ public void setRecurse() { mimeTokenStream.setRecursionMode(RecursionMode.M_RECURSE); }
public void parse(InputStream in) { parser.setRecursionMode(RecursionMode.M_RECURSE); parser.parse(in); topLevel = true; }
private byte[] mimeBodyContent() throws IOException, MimeException { final byte[] content; if (empty) { content = EMPTY; } else { parser.setRecursionMode(RecursionMode.M_FLAT); boolean valid = true; for (EntityState state = parser.getState(); state != EntityState.T_BODY && state != EntityState.T_START_MULTIPART; state = parser .next()) { if (state == EntityState.T_END_OF_STREAM) { valid = false; break; } } if (valid) { content = IOUtils.toByteArray(parser.getInputStream()); } else { content = EMPTY; } } return content; }
parser.setRecursionMode(RecursionMode.M_FLAT); for (EntityState state = parser.getState(); state != EntityState.T_BODY && state != EntityState.T_START_MULTIPART; state = parser
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); }
config.setStrictParsing(true); parser = new MimeTokenStream(config); parser.setRecursionMode(RecursionMode.M_NO_RECURSE); parser.parseHeadless(is, contentTypeString);
parser.setRecursionMode(RecursionMode.M_NO_RECURSE); parser.parse(bIn); final HeaderImpl header = new HeaderImpl();