You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mime4j-dev@james.apache.org by "Tellier Benoit (JIRA)" <mi...@james.apache.org> on 2018/03/05 08:00:02 UTC

[jira] [Comment Edited] (MIME4J-265) Possible wrong calculation of header length

    [ https://issues.apache.org/jira/browse/MIME4J-265?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16385746#comment-16385746 ] 

Tellier Benoit edited comment on MIME4J-265 at 3/5/18 7:59 AM:
---------------------------------------------------------------

Hi,

You just need to pass a custom mime configuration to your message builder. For instance:

{code:java}
        DefaultMessageBuilder defaultMessageBuilder = new DefaultMessageBuilder();
        defaultMessageBuilder.setMimeEntityConfig(MimeConfig.custom()
            .setMaxContentLen(-1)
            .setMaxHeaderLen(-1)
            .setMaxHeaderCount(-1)
            .setMaxLineLen(-1)
            .build());
        defaultMessageBuilder.setDecodeMonitor(DecodeMonitor.SILENT);
        Message message = defaultMessageBuilder.parseMessage(fullContent);
{code}

Cheers,

Benoit Tellier


was (Author: btellier):
Hi,

You just need to pass a custom mime configuration to your message builder. For instance:

{code:java}
        DefaultMessageBuilder defaultMessageBuilder = new DefaultMessageBuilder();
        defaultMessageBuilder.setMimeEntityConfig(MimeConfig.custom()
            .setMaxContentLen(-1)
            .setMaxHeaderCount(-1)
            .setMaxHeaderLen(-1)
            .setMaxHeaderCount(-1)
            .setMaxLineLen(-1)
            .build());
        defaultMessageBuilder.setDecodeMonitor(DecodeMonitor.SILENT);
        Message message = defaultMessageBuilder.parseMessage(fullContent);
{code}

Cheers,

Benoit Tellier

> Possible wrong calculation of header length
> -------------------------------------------
>
>                 Key: MIME4J-265
>                 URL: https://issues.apache.org/jira/browse/MIME4J-265
>             Project: James Mime4j
>          Issue Type: Bug
>    Affects Versions: 0.7.2
>            Reporter: Raffaele Gambelli
>            Priority: Major
>              Labels: headers
>
> I've implemented a sort of mail server and I have many threads listening for incoming emails.
> I'm using mime4j to parse javamail Message.
> I had only one case of:
> Caused by: org.apache.james.mime4j.io.MaxHeaderLengthLimitException: Maximum header length limit exceeded
>  at org.apache.james.mime4j.stream.DefaultFieldBuilder.append(DefaultFieldBuilder.java:63)
>         at org.apache.james.mime4j.stream.MimeEntity.readRawField(MimeEntity.java:212)
>         at org.apache.james.mime4j.stream.MimeEntity.nextField(MimeEntity.java:258)
> Looking at the code of DefaultFieldBuilder, it seems that the check over line length is not done on the single line but on the overall header, I'm refering to this line:
> {code:java}
> if (this.maxlen > 0 && this.buf.length() + len >= this.maxlen) {
> {code}
> Why should you add "this.buf.length" ?
> I know that there is no limit on header length, but only in its lines.
> I can't attach my eml for privacy reasons but I can confirm that I have no too much long line
> Thanks



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)