Closed

Description
The validate
method tightly couples validation for injection attacks alongside email addresses validation. These are different types of validation. Consider:
public boolean validate(final Email email) {
validateSenders(email);
validateRecipients(email);
validateAttacks(email);
}
This would allow for global settings to control validation. For example:
public boolean validate(final Email email) {
if( validate() ) {
validateSenders(email);
validateRecipients(email);
validateAttacks(email);
}
}
public boolean validateSenders(final Email email) {
if( validateSenders() ) {
final InternetAddress[] addresses = email.getAddresses(FROM);
if (!EmailAddressValidator.isValid(addresses, getEmailAddressCriteria())) {
// ...
}
}