Skip to content

Commit 05e4163

Browse files
committed
#159: be able to handle empty email header, empty being defined as null, "" and "<>"
1 parent 8cdaa99 commit 05e4163

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

Diff for: src/main/java/org/simplejavamail/converter/internal/mimemessage/MimeMessageParser.java

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.simplejavamail.converter.internal.mimemessage;
22

33
import com.sun.mail.handlers.text_plain;
4+
import org.simplejavamail.internal.util.MiscUtil;
45
import org.simplejavamail.internal.util.Preconditions;
56

67
import javax.activation.ActivationDataFlavor;
@@ -160,11 +161,11 @@ private static void parseMimePartTree(@Nonnull final MimePart currentPart, @Nonn
160161

161162
@SuppressWarnings("StatementWithEmptyBody")
162163
private static void parseHeader(final Header header, @Nonnull final ParsedMimeMessageComponents parsedComponents) {
163-
if (header.getName().equals("Disposition-Notification-To")) {
164+
if (isEmailHeader(header, "Disposition-Notification-To")) {
164165
parsedComponents.dispositionNotificationTo = createAddress(header, "Disposition-Notification-To");
165-
} else if (header.getName().equals("Return-Receipt-To")) {
166+
} else if (isEmailHeader(header, "Return-Receipt-To")) {
166167
parsedComponents.returnReceiptTo = createAddress(header, "Return-Receipt-To");
167-
} else if (header.getName().equals("Return-Path")) {
168+
} else if (isEmailHeader(header, "Return-Path")) {
168169
parsedComponents.bounceToAddress = createAddress(header, "Return-Path");
169170
} else if (!HEADERS_TO_IGNORE.contains(header.getName())) {
170171
parsedComponents.headers.put(header.getName(), header.getValue());
@@ -173,6 +174,12 @@ private static void parseHeader(final Header header, @Nonnull final ParsedMimeMe
173174
}
174175
}
175176

177+
private static boolean isEmailHeader(Header header, String emailHeaderName) {
178+
return header.getName().equals(emailHeaderName) &&
179+
!MiscUtil.valueNullOrEmpty(header.getValue()) &&
180+
!header.getValue().equals("<>");
181+
}
182+
176183
@SuppressWarnings("WeakerAccess")
177184
public static String parseFileName(@Nonnull final Part currentPart) {
178185
try {

Diff for: src/test/java/org/simplejavamail/mailer/MailerLiveTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ private Email assertSendingEmail(final EmailPopulatingBuilder originalEmailPopul
130130

131131
@Test
132132
public void createMailSession_ReplyToMessage()
133-
throws IOException, MessagingException {
133+
throws MessagingException {
134134
// send initial mail
135135
mailer.sendMail(readOutlookMessage("test-messages/HTML mail with replyto and attachment and embedded image.msg").buildEmail());
136136
MimeMessage receivedMimeMessage = smtpServerRule.getOnlyMessage();
@@ -162,7 +162,7 @@ public void createMailSession_ReplyToMessage()
162162

163163
@Test
164164
public void createMailSession_ReplyToMessage_NotAll_AndCustomReferences()
165-
throws IOException, MessagingException {
165+
throws MessagingException {
166166
// send initial mail
167167
mailer.sendMail(readOutlookMessage("test-messages/HTML mail with replyto and attachment and embedded image.msg").buildEmail());
168168
MimeMessage receivedMimeMessage = smtpServerRule.getOnlyMessage();

0 commit comments

Comments
 (0)