Skip to content

Commit e2adb0b

Browse files
committed
#486: updated java-utils-mail-smime dependency, which adds support for incorrectly signed S/MIME content, which occur in some Outlook message
1 parent 4822d79 commit e2adb0b

File tree

5 files changed

+25717
-1
lines changed

5 files changed

+25717
-1
lines changed

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

+32
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package org.simplejavamail.converter;
22

33
import jakarta.mail.util.ByteArrayDataSource;
4+
import org.assertj.core.api.Condition;
45
import org.jetbrains.annotations.NotNull;
56
import org.junit.Test;
67
import org.simplejavamail.api.email.AttachmentResource;
78
import org.simplejavamail.api.email.CalendarMethod;
89
import org.simplejavamail.api.email.ContentTransferEncoding;
910
import org.simplejavamail.api.email.Email;
1011
import org.simplejavamail.api.email.EmailAssert;
12+
import org.simplejavamail.api.email.OriginalSmimeDetails;
1113
import org.simplejavamail.api.email.Recipient;
1214
import testutil.ConfigLoaderTestHelper;
1315
import testutil.EmailHelper;
@@ -335,6 +337,36 @@ private static String contentIDExtractor(String eml, String filename) {
335337
return matcher.group("uuid");
336338
}
337339

340+
@Test
341+
public void testGithub486_InvalidSignedOutlookMessage() {
342+
Email emailMime = EmailConverter.emlToEmail(new File(RESOURCE_TEST_MESSAGES + "/#486 TestValidSignedMimeMessage.eml"));
343+
Email emailOutlook = EmailConverter.outlookMsgToEmail(new File(RESOURCE_TEST_MESSAGES + "/#486 TestInvalidSignedOutlookMessage.msg"));
344+
345+
assertThat(emailMime.getEmbeddedImages()).areExactly(1, new Condition<>(at -> at.getName().contains(".jpg"), null));
346+
assertThat(emailMime.getAttachments()).areExactly(1, new Condition<>(at -> at.getName().contains(".jpg"), null));
347+
348+
assertThat(emailMime.getOriginalSmimeDetails().getSmimeMode()).isEqualTo(OriginalSmimeDetails.SmimeMode.SIGNED);
349+
assertThat(emailOutlook.getOriginalSmimeDetails().getSmimeMode()).isEqualTo(OriginalSmimeDetails.SmimeMode.SIGNED);
350+
assertThat(emailMime.getFromRecipient()).isEqualTo(emailOutlook.getFromRecipient());
351+
assertThat(emailMime.getId()).isEqualTo(emailOutlook.getId());
352+
assertThat(emailMime.getSentDate()).isEqualTo(emailOutlook.getSentDate());
353+
assertThat(emailMime.getBounceToRecipient()).isEqualTo(emailOutlook.getBounceToRecipient());
354+
assertThat(emailMime.getPlainText()).isEqualTo(emailOutlook.getPlainText());
355+
assertThat(emailMime.getCalendarText()).isEqualTo(emailOutlook.getCalendarText());
356+
assertThat(emailMime.getCalendarMethod()).isEqualTo(emailOutlook.getCalendarMethod());
357+
assertThat(emailMime.getHTMLText()).isEqualTo(emailOutlook.getHTMLText());
358+
assertThat(emailMime.getSubject()).isEqualTo(emailOutlook.getSubject());
359+
assertThat(emailMime.getRecipients()).containsExactlyElementsOf(emailOutlook.getRecipients());
360+
assertThat(emailMime.getOverrideReceivers()).containsExactlyElementsOf(emailOutlook.getOverrideReceivers());
361+
assertThat(emailMime.getEmbeddedImages()).containsExactlyElementsOf(emailOutlook.getEmbeddedImages());
362+
assertThat(emailMime.getUseDispositionNotificationTo()).isEqualTo(emailOutlook.getUseDispositionNotificationTo());
363+
assertThat(emailMime.getUseReturnReceiptTo()).isEqualTo(emailOutlook.getUseReturnReceiptTo());
364+
assertThat(emailMime.getDispositionNotificationTo()).isEqualTo(emailOutlook.getDispositionNotificationTo());
365+
assertThat(emailMime.getPkcs12ConfigForSmimeSigning()).isEqualTo(emailOutlook.getPkcs12ConfigForSmimeSigning());
366+
assertThat(emailMime.getX509CertificateForSmimeEncryption()).isEqualTo(emailOutlook.getX509CertificateForSmimeEncryption());
367+
assertThat(emailMime.getReturnReceiptTo()).isEqualTo(emailOutlook.getReturnReceiptTo());
368+
}
369+
338370
@NotNull
339371
private List<AttachmentResource> asList(AttachmentResource attachment) {
340372
List<AttachmentResource> collectionAttachment = new ArrayList<>();

0 commit comments

Comments
 (0)