*/
private String exceptionToLogString(Exception e) {
if (e.getClass().getName().endsWith(".SMTPSendFailedException")) {
return "RemoteHost said: " + e.getMessage();
} else if (e instanceof SendFailedException) {
SendFailedException exception = (SendFailedException) e;
// No error
if (exception.getInvalidAddresses().length == 0 && exception.getValidUnsentAddresses().length == 0)
return null;
Exception ex;
StringBuilder sb = new StringBuilder();
boolean smtpExFound = false;
sb.append("RemoteHost said:");
if (e instanceof MessagingException)
while ((ex = ((MessagingException) e).getNextException()) != null && ex instanceof MessagingException) {
e = ex;
if (ex.getClass().getName().endsWith(".SMTPAddressFailedException")) {
try {
InternetAddress ia = (InternetAddress) invokeGetter(ex, "getAddress");
sb.append(" ( ").append(ia).append(" - [").append(ex.getMessage().replaceAll("\\n", "")).append("] )");
smtpExFound = true;
} catch (IllegalStateException ise) {
// Error invoking the getAddress method
} catch (ClassCastException cce) {
// The getAddress method returned something
// different than InternetAddress
}
}
}
if (!smtpExFound) {
boolean invalidAddr = false;
sb.append(" ( ");
if (exception.getInvalidAddresses().length > 0) {
sb.append(Arrays.toString(exception.getInvalidAddresses()));
invalidAddr = true;
}
if (exception.getValidUnsentAddresses().length > 0) {
if (invalidAddr)
sb.append(" ");
sb.append(Arrays.toString(exception.getValidUnsentAddresses()));
}
sb.append(" - [");
sb.append(exception.getMessage().replaceAll("\\n", ""));
sb.append("] )");
}
return sb.toString();
}
return null;