MIME4J-253 fix parsing encoded local part (#65)
diff --git a/dom/src/main/java/org/apache/james/mime4j/field/address/LenientAddressParser.java b/dom/src/main/java/org/apache/james/mime4j/field/address/LenientAddressParser.java
index c059826..153f449 100644
--- a/dom/src/main/java/org/apache/james/mime4j/field/address/LenientAddressParser.java
+++ b/dom/src/main/java/org/apache/james/mime4j/field/address/LenientAddressParser.java
@@ -184,7 +184,7 @@
private Mailbox createMailbox(final String localPart) {
if (localPart != null && localPart.length() > 0) {
- return new Mailbox(null, null, localPart, null);
+ return new Mailbox(null, null, DecoderUtil.decodeEncodedWords(localPart, this.monitor), null);
} else {
return null;
}
diff --git a/dom/src/test/java/org/apache/james/mime4j/field/address/LenientAddressBuilderTest.java b/dom/src/test/java/org/apache/james/mime4j/field/address/LenientAddressBuilderTest.java
index 36aee6c..0c622ad 100644
--- a/dom/src/test/java/org/apache/james/mime4j/field/address/LenientAddressBuilderTest.java
+++ b/dom/src/test/java/org/apache/james/mime4j/field/address/LenientAddressBuilderTest.java
@@ -216,6 +216,12 @@
}
@Test
+ public void testParseMailboxEncodedLocalPart() throws ParseException {
+ Mailbox mailbox1 = parser.parseMailbox("=?utf-8?B?IkvDpXJlIFPDpnRyZSIgPGtzQGRvbWFpbi5jb20+?=");
+ Assert.assertEquals("\"Kåre Sætre\" <ks@domain.com>", mailbox1.getLocalPart());
+ }
+
+ @Test
public void testParseMailboxNonASCII() throws Exception {
Mailbox mailbox1 = parser.parseMailbox(
"Hans M\374ller <hans.mueller@acme.org>");