this.configuration = freeMarkerConfigurer.getConfiguration();
}
private static void checkGoodEmail(final String input) throws MailServerException {
if (input == null) {
throw new MailServerException("Sorry, null string is not a good email.");
}
int atIndex = input.indexOf('@');
int dotIndex = input.lastIndexOf('.');
if (atIndex == -1 || dotIndex == -1 || atIndex >= dotIndex) {
throw new MailServerException("Error: '" + input + "' is not a valid email value. Please try again.");
}
// now check for content of the string
byte[] s = input.getBytes();
int length = s.length;
byte b = 0;
for (int i = 0; i < length; i++) {
b = s[i];
if (b >= 'a' && b <= 'z') {
// lower char
} else if (b >= 'A' && b <= 'Z') {
// upper char
} else if (b >= '0' && b <= '9' && i != 0) {
// numeric char
} else if ( ( b=='_' || b=='-' || b=='.' || b=='@' ) && i != 0 ) {
// _ char
} else {
// not good char, throw an BadInputException
throw new MailServerException(input + " is not a valid email. Reason: character '" + (char)b + "' is not accepted in an email.");
}
}// for
// last check
try {
new javax.mail.internet.InternetAddress(input);
}
catch (Exception ex) {
logger.error("Error when running checkGoodEmail", ex);
throw new MailServerException("Assertion: dont want to occur in Util.checkGoodEmail");
}
}