Skip to content

Commit 553b83f

Browse files
committed
#235, #236: map message id and sent date from outlook messages as well
1 parent 775685c commit 553b83f

File tree

3 files changed

+13
-15
lines changed

3 files changed

+13
-15
lines changed

modules/outlook-module/src/main/java/org/simplejavamail/internal/outlooksupport/converter/OutlookEmailConverter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ private static EmailFromOutlookMessage buildEmailFromOutlookMessage(
5252
checkNonEmptyArgument(outlookMessage, "outlookMessage");
5353
String fromEmail = ofNullable(outlookMessage.getFromEmail()).orElse("[email protected]");
5454
builder.from(outlookMessage.getFromName(), fromEmail);
55+
builder.fixingMessageId(outlookMessage.getMessageId());
56+
builder.fixingSentDate(ofNullable(outlookMessage.getClientSubmitTime()).orElse(outlookMessage.getDate())); // FIXME creation date?
5557
if (!MiscUtil.valueNullOrEmpty(outlookMessage.getReplyToEmail())) {
5658
builder.withReplyTo(outlookMessage.getReplyToName(), outlookMessage.getReplyToEmail());
5759
}

modules/simple-java-mail/src/test/java/org/simplejavamail/internal/smimesupport/TestSmimeAttachments.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@ public void testSMIMEMessageFromOutlookMsgWithDefaultMergeBehavior() {
7171
// verify msg that was sent with Outlook against eml that was received in Thunderbird
7272
EmailPopulatingBuilder fromEmlBuilder = EmailConverter.emlToEmailBuilder(new File(RESOURCE_FOLDER + "/SMIME (signed and clear text).eml"));
7373
Email emailExpectedFromEml = fromEmlBuilder
74-
.clearId() // set by Outlook when sending, so is missing in the saved .msg from before sending
75-
.clearSentDate() // same
76-
.clearHeaders() // same
74+
.clearHeaders() // set by Outlook when sending, so is missing in the saved .msg from before sending
7775
.clearReplyTo() // same
7876
.clearBounceTo() // same
7977
.from(assumeNonNull(fromEmlBuilder.getFromRecipient()).getName(), "[email protected]")
@@ -156,9 +154,7 @@ public void testSMIMEMessageFromOutlookMsgWithNonMergingBehavior() {
156154
// verify msg that was sent with Outlook against eml that was received in Thunderbird
157155
EmailPopulatingBuilder fromEmlBuilder = EmailConverter.emlToEmailBuilder(new File(RESOURCE_FOLDER + "/SMIME (signed and clear text).eml"));
158156
Email emailExpectedFromEml = fromEmlBuilder
159-
.clearId() // set by Outlook when sending, so is missing in the saved .msg from before sending
160-
.clearSentDate() // same
161-
.clearHeaders() // same
157+
.clearHeaders() // set by Outlook when sending, so is missing in the saved .msg from before sending
162158
.clearReplyTo() // same
163159
.clearBounceTo() // same
164160
.from(assumeNonNull(fromEmlBuilder.getFromRecipient()).getName(), "[email protected]")

modules/simple-java-mail/src/test/java/org/simplejavamail/mailer/MailerLiveTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void createMailSession_StandardDummyMailWithIdAndSendDate()
106106
@Test
107107
public void createMailSession_OutlookMessageTest()
108108
throws IOException, MessagingException, ExecutionException, InterruptedException {
109-
Email email = assertSendingEmail(readOutlookMessage("test-messages/HTML mail with replyto and attachment and embedded image.msg"), false, false, false, false);
109+
Email email = assertSendingEmail(readOutlookMessage("test-messages/HTML mail with replyto and attachment and embedded image.msg"), false, false, false, true);
110110
verifyReceivedOutlookEmail(email, false, false);
111111
}
112112

@@ -115,7 +115,7 @@ public void createMailSession_OutlookMessageSmimeSignTest()
115115
throws IOException, MessagingException, ExecutionException, InterruptedException {
116116
EmailPopulatingBuilder builder = readOutlookMessage("test-messages/HTML mail with replyto and attachment and embedded image.msg");
117117
builder.signWithSmime(new File(RESOURCES_PKCS + "/smime_keystore.pkcs12"), "letmein", "smime_test_user_alias", "letmein");
118-
Email email = assertSendingEmail(builder, false, true, false, false);
118+
Email email = assertSendingEmail(builder, false, true, false, true);
119119
verifyReceivedOutlookEmail(email, true, false);
120120

121121
EmailAssert.assertThat(email).wasNotMergedWithSmimeSignedMessage();
@@ -135,7 +135,7 @@ public void createMailSession_OutlookMessageSmimeEncryptTest()
135135
throws IOException, MessagingException, ExecutionException, InterruptedException {
136136
EmailPopulatingBuilder builder = readOutlookMessage("test-messages/HTML mail with replyto and attachment and embedded image.msg");
137137
builder.encryptWithSmime(new File(RESOURCES_PKCS + "/smime_test_user.pem.standard.crt"));
138-
Email email = assertSendingEmail(builder, false, true, false, false);
138+
Email email = assertSendingEmail(builder, false, true, false, true);
139139
verifyReceivedOutlookEmail(email, false, true);
140140

141141
EmailAssert.assertThat(email).wasMergedWithSmimeSignedMessage();
@@ -154,7 +154,7 @@ public void createMailSession_OutlookMessageSmimeSignEncryptTest()
154154
EmailPopulatingBuilder builder = readOutlookMessage("test-messages/HTML mail with replyto and attachment and embedded image.msg");
155155
builder.signWithSmime(new File(RESOURCES_PKCS + "/smime_keystore.pkcs12"), "letmein", "smime_test_user_alias", "letmein");
156156
builder.encryptWithSmime(new File(RESOURCES_PKCS + "/smime_test_user.pem.standard.crt"));
157-
Email email = assertSendingEmail(builder, false, true, false, false);
157+
Email email = assertSendingEmail(builder, false, true, false, true);
158158
verifyReceivedOutlookEmail(email, true, true);
159159

160160
EmailAssert.assertThat(email).wasMergedWithSmimeSignedMessage();
@@ -230,7 +230,7 @@ private void verifyReceivedOutlookEmail(final Email email, final boolean smimeSi
230230
}
231231

232232
private Email assertSendingEmail(final EmailPopulatingBuilder originalEmailPopulatingBuilder, boolean compensateForDresscodeAttachmentNameOverrideErasure, boolean skipChecksDueToSmime,
233-
boolean async, final boolean fixedSentDate)
233+
boolean async, final boolean sentDateWasFixed)
234234
throws MessagingException, ExecutionException, InterruptedException {
235235
Email originalEmail = originalEmailPopulatingBuilder.buildEmail();
236236

@@ -250,12 +250,12 @@ private Email assertSendingEmail(final EmailPopulatingBuilder originalEmailPopul
250250

251251
Email receivedEmail = mimeMessageToEmail(receivedMimeMessage.getMimeMessage(), loadPkcs12KeyStore());
252252

253-
if (!fixedSentDate) {
253+
if (!sentDateWasFixed) {
254254
GregorianCalendar receiveWindowStart = new GregorianCalendar();
255255
receiveWindowStart.add(Calendar.SECOND, -5);
256256
assertThat(receivedEmail.getSentDate()).isBetween(receiveWindowStart.getTime(), new Date());
257257
} else {
258-
assertThat(receivedEmail.getSentDate()).isEqualTo(CUSTOM_SENT_DATE);
258+
assertThat(receivedEmail.getSentDate()).isEqualTo(originalEmailPopulatingBuilder.getSentDate());
259259
}
260260

261261
// ID will always be generated when sending: if set to a specific value, just assume the generated one
@@ -308,7 +308,7 @@ public void createMailSession_ReplyToMessage()
308308

309309
// send reply to initial mail
310310
Email reply = EmailBuilder
311-
.replyingToAll(assertSendingEmail(receivedEmailPopulatingBuilder, false, false, false, false))
311+
.replyingToAll(assertSendingEmail(receivedEmailPopulatingBuilder, false, false, false, true))
312312
313313
.withPlainText("This is the reply")
314314
.buildEmail();
@@ -340,7 +340,7 @@ public void createMailSession_ReplyToMessage_NotAll_AndCustomReferences()
340340

341341
// send reply to initial mail
342342
Email reply = EmailBuilder
343-
.replyingTo(assertSendingEmail(receivedEmailPopulatingBuilder, false, false, false, false))
343+
.replyingTo(assertSendingEmail(receivedEmailPopulatingBuilder, false, false, false, true))
344344
.from("Moo Shmoo", "[email protected]")
345345
.withPlainText("This is the reply")
346346
.buildEmail();

0 commit comments

Comments
 (0)