Skip to content

Commit 98f717a

Browse files
committed
#318: allow attachments with empty data (even though this is invalid, but we can't just ignore the source material, like an outlook message conversion)
1 parent 4410de9 commit 98f717a

File tree

4 files changed

+10
-1
lines changed

4 files changed

+10
-1
lines changed

modules/simple-java-mail/src/main/java/org/simplejavamail/email/internal/EmailPopulatingBuilderImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
import static org.simplejavamail.email.internal.EmailException.ERROR_RESOLVING_IMAGE_DATASOURCE;
8888
import static org.simplejavamail.email.internal.EmailException.NAME_MISSING_FOR_EMBEDDED_IMAGE;
8989
import static org.simplejavamail.internal.smimesupport.SmimeRecognitionUtil.isGeneratedSmimeMessageId;
90+
import static org.simplejavamail.internal.util.MiscUtil.checkNotNull;
9091
import static org.simplejavamail.internal.util.MiscUtil.defaultTo;
9192
import static org.simplejavamail.internal.util.MiscUtil.extractEmailAddresses;
9293
import static org.simplejavamail.internal.util.MiscUtil.randomCid10;
@@ -1681,7 +1682,7 @@ public EmailPopulatingBuilder withHeader(@NotNull final String name, @Nullable f
16811682
*/
16821683
@Override
16831684
public EmailPopulatingBuilder withAttachment(@Nullable final String name, @NotNull final byte[] data, @NotNull final String mimetype) {
1684-
checkNonEmptyArgument(data, "data");
1685+
checkNotNull(data, "data");
16851686
checkNonEmptyArgument(mimetype, "mimetype");
16861687
final ByteArrayDataSource dataSource = new ByteArrayDataSource(data, mimetype);
16871688
dataSource.setName(name);

modules/simple-java-mail/src/test/java/org/simplejavamail/converter/EmailConverterTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,12 @@ public void testAttachmentSize() {
102102
assertThat(attachment.getName()).isEqualTo("ForwardedMessage.eml");
103103
}
104104
}
105+
106+
@Test
107+
public void testOutlookMessageWithEmptyAttachments() {
108+
Email s1 = EmailConverter.outlookMsgToEmail(new File(RESOURCE_TEST_MESSAGES + "/#318 Email with nodata-attachment.msg"));
109+
assertThat(s1.getAttachments()).extracting("name").containsExactlyInAnyOrder("ecblank.gif", "logo_imabenelux.jpg");
110+
Email s2 = EmailConverter.outlookMsgToEmail(new File(RESOURCE_TEST_MESSAGES + "/#318 Email with nodata-attachment2.msg"));
111+
assertThat(s2.getAttachments()).extracting("name").containsExactlyInAnyOrder("ETS Andre Glotz SA CP 1.doc");
112+
}
105113
}

0 commit comments

Comments
 (0)