|
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