11package org .simplejavamail .converter .internal .mimemessage ;
22
33import org .junit .Test ;
4+ import org .simplejavamail .converter .EmailConverter ;
45import org .simplejavamail .converter .internal .mimemessage .MimeMessageParser .ParsedMimeMessageComponents ;
6+ import org .simplejavamail .email .Email ;
7+ import org .simplejavamail .email .EmailAssert ;
8+ import org .simplejavamail .email .EmailBuilder ;
9+ import org .simplejavamail .email .Recipient ;
10+ import testutil .ConfigLoaderTestHelper ;
511
612import javax .mail .util .ByteArrayDataSource ;
713import java .io .IOException ;
814
15+ import static javax .mail .Message .RecipientType .TO ;
916import static org .assertj .core .api .Assertions .assertThat ;
1017import static org .simplejavamail .converter .internal .mimemessage .MimeMessageParser .moveInvalidEmbeddedResourcesToAttachments ;
1118
@@ -44,4 +51,24 @@ public void testMoveInvalidEmbeddedResourcesToAttachments_Invalid() throws IOExc
4451 assertThat (parsedComponents .cidMap ).containsOnlyKeys ("moo1" );
4552 assertThat (parsedComponents .attachmentList ).extracting ("key" ).containsOnly ("moo2" );
4653 }
54+
55+ @ Test
56+ // https://github.com/bbottema/simple-java-mail/issues/227
57+ public void testSemiColonSeparatedToAddresses () {
58+ ConfigLoaderTestHelper .clearConfigProperties ();
59+
60+ final Email initialEmail = EmailBuilder .startingBlank ()
61+ .
from (
"lollypop" ,
"[email protected] " )
62+ .
to (
"C.Cane" ,
"[email protected] " )
63+ .withPlainText ("We should meet up!" )
64+ .buildEmail ();
65+
66+ String corruptedEML = EmailConverter .emailToEML (initialEmail ).replace (
67+ "To: \" C.Cane\" <[email protected] >" ,
68+ "To: \" C.Cane\" <[email protected] >;" );
69+
70+ final Email fixedEmail = EmailConverter .emlToEmail (corruptedEML );
71+
72+ EmailAssert .
assertThat (
fixedEmail ).
hasOnlyRecipients (
new Recipient (
"C.Cane" ,
"[email protected] " ,
TO ));
73+ }
4774}
0 commit comments