diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 4fd96a63a6..0d84278b84 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1732,6 +1732,30 @@ public class ServiceSynchronize extends LifecycleService { db.endTransaction(); } } catch (MessagingException ex) { + if (ex instanceof SendFailedException) { + SendFailedException sfe = (SendFailedException) ex; + + StringBuilder sb = new StringBuilder(); + + sb.append(sfe.getMessage()); + + sb.append(' ').append(getString(R.string.title_address_sent)); + sb.append(' ').append(MessageHelper.getFormattedAddresses(sfe.getValidSentAddresses(), true)); + + sb.append(' ').append(getString(R.string.title_address_unsent)); + sb.append(' ').append(MessageHelper.getFormattedAddresses(sfe.getValidUnsentAddresses(), true)); + + sb.append(' ').append(getString(R.string.title_address_invalid)); + sb.append(' ').append(MessageHelper.getFormattedAddresses(sfe.getInvalidAddresses(), true)); + + ex = new SendFailedException( + sb.toString(), + sfe.getNextException(), + sfe.getValidSentAddresses(), + sfe.getValidUnsentAddresses(), + sfe.getInvalidAddresses()); + } + db.identity().setIdentityError(ident.id, Helper.formatThrowable(ex)); EntityLog.log(this, ident.name + " last attempt: " + new Date(message.last_attempt)); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 06c49b1d45..1823629b8a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -293,6 +293,9 @@ Unread Starred + Sent: + Unsent: + Invalid: Move to sent Previous