james-mime4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefano Bagnara (JIRA)" <mime4j-...@james.apache.org>
Subject [jira] [Commented] (MIME4J-239) AddressBuilder#parseMailbox fails when the local part contains a '@'
Date Sat, 14 Jun 2014 18:52:01 GMT

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

Stefano Bagnara commented on MIME4J-239:

This doesn't sounds as a bug. The "mailbox" you're trying to parse is invalid.

the syntax si [phrase] [routeaddress]
the "<...>" part is the routeaddress.
The phrase syntax is defined as: 
- A phrase is a word or a sequence of words.
- An word is either an atom or a quoted string.
- An atom is a sequence of printable ASCII characters except space or any of the following:

So , the "@" can't be contained in an atom, so it must be quoted. Also the space must be quoted.

So, these 2 should pass:
joe"@my "company <joe.foo@company.com>
"joe@my company" <joe.foo@company.com>
joe@my company <joe.foo@company.com>
without quotes is not valid.

> AddressBuilder#parseMailbox fails when the local part contains a '@'
> --------------------------------------------------------------------
>                 Key: MIME4J-239
>                 URL: https://issues.apache.org/jira/browse/MIME4J-239
>             Project: James Mime4j
>          Issue Type: Bug
>    Affects Versions: 0.7.2
>            Reporter: Nitsan Seniak
>            Priority: Critical
> The following calls throws an exception:
> Mailbox add = AddressBuilder.DEFAULT.parseMailbox("joe@my company <joe.foo@company.com>");
> The exception is:
> org.apache.james.mime4j.field.address.ParseException: Atoms in domain names must be separated
by '.'
> The expected result is (Hamcrest syntax):
> Mailbox add = AddressBuilder.DEFAULT.parseMailbox("joe@my company <joe.foo@company.com>");
> assertThat(add.getAddress(), is("joe.foo@company.com"));
> assertThat(add.getLocalPart(), is("joe@my company"));

This message was sent by Atlassian JIRA

View raw message