Merge "Improve SMTP client error messages" into stable-2.5
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/SmtpEmailSender.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/SmtpEmailSender.java
index f681710..ce45ffe 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/SmtpEmailSender.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/SmtpEmailSender.java
@@ -182,7 +182,12 @@
Writer w = client.sendMessageData();
if (w == null) {
- throw new EmailException("Server " + smtpHost + " rejected body");
+ /* Include rejected recipient error messages here to not lose that
+ * information. That piece of the puzzle is vital if zero recipients
+ * are accepted and the server consequently rejects the DATA command.
+ */
+ throw new EmailException(rejected + "Server " + smtpHost
+ + " rejected DATA command: " + client.getReplyString());
}
w = new BufferedWriter(w);
@@ -201,7 +206,8 @@
w.close();
if (!client.completePendingCommand()) {
- throw new EmailException("Server " + smtpHost + " rejected body");
+ throw new EmailException("Server " + smtpHost
+ + " rejected message body: " + client.getReplyString());
}
client.logout();
@@ -237,7 +243,8 @@
}
if (!client.login()) {
String e = client.getReplyString();
- throw new EmailException("SMTP server rejected login: " + e);
+ throw new EmailException(
+ "SMTP server rejected HELO/EHLO greeting: " + e);
}
if (smtpEncryption == Encryption.TLS) {