From 0d360522a036c2dc0e888f3a60d96a0fff5cf9bd Mon Sep 17 00:00:00 2001 From: brinn <brinn> Date: Sat, 21 Nov 2009 14:04:50 +0000 Subject: [PATCH] change: improve error message when sending an email failed by including the invalid recipient addresses if any SVN: 13463 --- .../systemsx/cisd/common/mail/MailClient.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/common/source/java/ch/systemsx/cisd/common/mail/MailClient.java b/common/source/java/ch/systemsx/cisd/common/mail/MailClient.java index 8eeb8b2f359..bc26fa9fa16 100644 --- a/common/source/java/ch/systemsx/cisd/common/mail/MailClient.java +++ b/common/source/java/ch/systemsx/cisd/common/mail/MailClient.java @@ -26,6 +26,7 @@ import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; +import javax.mail.SendFailedException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; @@ -187,8 +188,29 @@ public final class MailClient extends Authenticator implements IMailClient send(msg); } catch (MessagingException ex) { - throw new EnvironmentFailureException("Sending e-mail with subject '" + subject - + "' to recipients " + Arrays.asList(recipients) + " failed. Reason: " + ex, ex); + final StringBuilder b = new StringBuilder(); + b.append("Sending e-mail with subject '"); + b.append(subject); + b.append("' to recipients "); + b.append(Arrays.asList(recipients)); + b.append(" failed."); + if (ex instanceof SendFailedException) + { + final Address[] invalidAddressesOrNull = + ((SendFailedException) ex).getInvalidAddresses(); + if (invalidAddressesOrNull != null && invalidAddressesOrNull.length > 0) + { + b.append(" These email addresses are invalid:\n"); + for (Address address : invalidAddressesOrNull) + { + b.append(address.toString()); + b.append('\n'); + } + } + } + b.append("\nDetailed failure description:\n"); + b.append(ex.toString()); + throw new EnvironmentFailureException(b.toString(), ex); } } -- GitLab