diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 9fa4b70ee8..849fd9b0e1 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -112,6 +112,11 @@ public class MessageHelper { props.put("mail.mime.address.strict", "false"); props.put("mail.mime.decodetext.strict", "false"); + props.put("mail.mime.ignoreunknownencoding", "true"); + props.put("mail.mime.decodefilename", "true"); + props.put("mail.mime.encodefilename", "true"); + props.put("mail.mime.multipart.ignoreexistingboundaryparameter", "true"); + // https://javaee.github.io/javamail/OAuth2 Log.i(Helper.TAG, "Auth type=" + auth_type); if (auth_type == Helper.AUTH_TYPE_GMAIL) { @@ -278,21 +283,20 @@ public class MessageHelper { private String getHtml(Part part) throws MessagingException, UnsupportedEncodingException { if (part.isMimeType("text/*")) try { - String s; - if ("x-binaryenc".equals(part.getContentType())) { - InputStream is = part.getInputStream(); - ByteArrayOutputStream os = new ByteArrayOutputStream(); - byte[] buffer = new byte[4096]; - for (int len = is.read(buffer); len != -1; len = is.read(buffer)) - os.write(buffer, 0, len); - s = new String(os.toByteArray(), "US-ASCII"); - } else - s = part.getContent().toString(); + String s = part.getContent().toString(); if (part.isMimeType("text/plain")) s = "
" + s.replaceAll("\\r?\\n", "
") + "
"; return s; } catch (UnsupportedEncodingException ex) { // https://javaee.github.io/javamail/FAQ#unsupen + //if ("x-binaryenc".equals(part.getContentType())) { + // InputStream is = part.getInputStream(); + // ByteArrayOutputStream os = new ByteArrayOutputStream(); + // byte[] buffer = new byte[4096]; + // for (int len = is.read(buffer); len != -1; len = is.read(buffer)) + // os.write(buffer, 0, len); + // s = new String(os.toByteArray(), "US-ASCII"); + //} throw new UnsupportedEncodingException(part.getContentType()); } catch (IOException ex) { diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index f05a6a6862..7aaa6ba66c 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -127,15 +127,6 @@ public class ServiceSynchronize extends LifecycleService { static final String ACTION_SYNCHRONIZE_FOLDER = BuildConfig.APPLICATION_ID + ".SYNCHRONIZE_FOLDER"; static final String ACTION_PROCESS_OPERATIONS = BuildConfig.APPLICATION_ID + ".PROCESS_OPERATIONS"; - public ServiceSynchronize() { - // https://docs.oracle.com/javaee/6/api/javax/mail/internet/package-summary.html - // https://docs.oracle.com/javaee/6/api/javax/mail/internet/MimeMultipart.html - System.setProperty("mail.mime.ignoreunknownencoding", "true"); - System.setProperty("mail.mime.decodefilename", "true"); - System.setProperty("mail.mime.encodefilename", "true"); - System.setProperty("mail.mime.multipart.ignoreexistingboundaryparameter", "true"); - } - @Override public void onCreate() { Log.i(Helper.TAG, "Service create version=" + BuildConfig.VERSION_NAME); @@ -419,7 +410,6 @@ public class ServiceSynchronize extends LifecycleService { Log.i(Helper.TAG, account.name + " event: " + e.getMessage()); db.account().setAccountError(account.id, e.getMessage()); - synchronized (state) { state.notifyAll(); }