|
17 | 17 |
|
18 | 18 | import java.io.File; |
19 | 19 | import java.util.ArrayList; |
| 20 | +import java.util.Arrays; |
20 | 21 | import java.util.Date; |
21 | 22 | import java.util.List; |
22 | 23 | import java.util.Properties; |
|
31 | 32 | import javax.mail.Message; |
32 | 33 | import javax.mail.MessagingException; |
33 | 34 | import javax.mail.PasswordAuthentication; |
| 35 | +import javax.mail.SendFailedException; |
34 | 36 | import javax.mail.Session; |
35 | 37 | import javax.mail.Transport; |
36 | 38 | import javax.mail.internet.InternetAddress; |
@@ -272,9 +274,22 @@ public void run() { |
272 | 274 | while ((message = queue.poll()) != null) { |
273 | 275 | try { |
274 | 276 | if (settings.getBoolean(Keys.mail.debug, false)) { |
275 | | - logger.info("send: " + StringUtils.trimString(message.getSubject(), 60)); |
| 277 | + logger.info("send: '" + StringUtils.trimString(message.getSubject(), 60) |
| 278 | + + "' to:" + StringUtils.trimString(Arrays.toString(message.getAllRecipients()), 300)); |
276 | 279 | } |
277 | 280 | Transport.send(message); |
| 281 | + } catch (SendFailedException sfe) { |
| 282 | + if (settings.getBoolean(Keys.mail.debug, false)) { |
| 283 | + logger.error("Failed to send message: {}", sfe.getMessage()); |
| 284 | + logger.info(" Invalid addresses: {}", Arrays.toString(sfe.getInvalidAddresses())); |
| 285 | + logger.info(" Valid sent addresses: {}", Arrays.toString(sfe.getValidSentAddresses())); |
| 286 | + logger.info(" Valid unset addresses: {}", Arrays.toString(sfe.getValidUnsentAddresses())); |
| 287 | + logger.info("", sfe); |
| 288 | + } |
| 289 | + else { |
| 290 | + logger.error("Failed to send message: {}", sfe.getMessage(), sfe.getNextException()); |
| 291 | + } |
| 292 | + failures.add(message); |
278 | 293 | } catch (Throwable e) { |
279 | 294 | logger.error("Failed to send message", e); |
280 | 295 | failures.add(message); |
|
0 commit comments