Skip to content

Commit d7081a6

Browse files
committedAug 15, 2017
#93, #95: fixed email address validation for the new headers
1 parent 1f2bb46 commit d7081a6

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed
 

‎src/main/java/org/simplejavamail/mailer/Mailer.java

+10-4
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,10 @@ public boolean validate(final Email email)
395395
throw new MailerException(MailerException.MISSING_RECIPIENT);
396396
} else if (email.getFromRecipient() == null) {
397397
throw new MailerException(MailerException.MISSING_SENDER);
398+
} else if (email.isUseDispositionNotificationTo() && email.getDispositionNotificationTo() == null) {
399+
throw new MailerException(MailerException.MISSING_DISPOSITIONNOTIFICATIONTO);
400+
} else if (email.isUseReturnReceiptTo() && email.getReturnReceiptTo() == null) {
401+
throw new MailerException(MailerException.MISSING_RETURNRECEIPTTO);
398402
} else if (emailAddressCriteria != null) {
399403
if (!EmailAddressValidator.isValid(email.getFromRecipient().getAddress(), emailAddressCriteria)) {
400404
throw new MailerException(format(MailerException.INVALID_SENDER, email));
@@ -408,11 +412,13 @@ public boolean validate(final Email email)
408412
.isValid(email.getReplyToRecipient().getAddress(), emailAddressCriteria)) {
409413
throw new MailerException(format(MailerException.INVALID_REPLYTO, email));
410414
}
411-
if (email.isUseDispositionNotificationTo() && email.getDispositionNotificationTo() == null) {
412-
throw new MailerException(MailerException.MISSING_DISPOSITIONNOTIFICATIONTO);
415+
if (email.isUseDispositionNotificationTo() && !EmailAddressValidator
416+
.isValid(email.getDispositionNotificationTo().getAddress(), emailAddressCriteria)) {
417+
throw new MailerException(format(MailerException.INVALID_DISPOSITIONNOTIFICATIONTO, email));
413418
}
414-
if (email.isUseReturnReceiptTo() && email.getReturnReceiptTo() == null) {
415-
throw new MailerException(MailerException.MISSING_RETURNRECEIPTTO);
419+
if (email.isUseReturnReceiptTo() && !EmailAddressValidator
420+
.isValid(email.getReturnReceiptTo().getAddress(), emailAddressCriteria)) {
421+
throw new MailerException(format(MailerException.INVALID_RETURNRECEIPTTO, email));
416422
}
417423
}
418424
return true;

‎src/main/java/org/simplejavamail/mailer/MailerException.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@ class MailerException extends MailException {
1313
static final String INVALID_RECIPIENT = "Invalid TO address: %s";
1414
static final String INVALID_REPLYTO = "Invalid REPLY TO address: %s";
1515
static final String INVALID_SENDER = "Invalid FROM address: %s";
16+
static final String INVALID_DISPOSITIONNOTIFICATIONTO = "Invalid \"Disposition Notification To\" address: %s";
17+
static final String INVALID_RETURNRECEIPTTO = "Invalid \"Return Receipt To\" address: %s";
1618
static final String MISSING_SENDER = "Email is not valid: missing sender";
1719
static final String MISSING_RECIPIENT = "Email is not valid: missing recipients";
1820
static final String MISSING_SUBJECT = "Email is not valid: missing subject";
1921
static final String MISSING_CONTENT = "Email is not valid: missing content body";
20-
static final String INJECTION_SUSPECTED = "Suspected of injection attack, field: %s with suspicious value: %s";
2122
static final String MISSING_DISPOSITIONNOTIFICATIONTO = "Email is not valid: missing \"Disposition Notification To\" address";
2223
static final String MISSING_RETURNRECEIPTTO = "Email is not valid: missing \"Return Receipt To\" address";
24+
static final String INJECTION_SUSPECTED = "Suspected of injection attack, field: %s with suspicious value: %s";
2325

2426
MailerException(final String message) {
2527
super(message);

0 commit comments

Comments
 (0)
Please sign in to comment.