MCPcopy Create free account
hub / github.com/M66B/FairEmail / from

Method from

app/src/main/java/eu/faircode/email/MessageHelper.java:359–830  ·  view source on GitHub ↗
(Context context, EntityMessage message, EntityIdentity identity, Session isession, boolean send)

Source from the content-addressed store, hash-verified

357 }
358
359 static MimeMessageEx from(Context context, EntityMessage message, EntityIdentity identity, Session isession, boolean send)
360 throws MessagingException, IOException {
361 DB db = DB.getInstance(context);
362 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
363 int receipt_type = prefs.getInt("receipt_type", 2);
364 boolean receipt_legacy = prefs.getBoolean("receipt_legacy", false);
365 boolean hide_timezone = prefs.getBoolean("hide_timezone", false);
366 boolean autocrypt = prefs.getBoolean("autocrypt", true);
367 boolean mutual = prefs.getBoolean("autocrypt_mutual", true);
368 boolean encrypt_subject = prefs.getBoolean("encrypt_subject", false);
369 boolean forward_new = prefs.getBoolean("forward_new", false);
370
371 if (identity != null && identity.receipt_type != null)
372 receipt_type = identity.receipt_type;
373
374 Map<String, String> c = new HashMap<>();
375 c.put("id", message.id == null ? null : Long.toString(message.id));
376 c.put("encrypt", message.encrypt + "/" + message.ui_encrypt);
377 Log.breadcrumb("Build message", c);
378
379 MimeMessageEx imessage = new MimeMessageEx(isession, message.msgid);
380
381 // Flags
382 imessage.setFlag(Flags.Flag.SEEN, message.seen);
383 imessage.setFlag(Flags.Flag.FLAGGED, message.flagged);
384 imessage.setFlag(Flags.Flag.ANSWERED, message.answered);
385
386 // Priority
387 if (EntityMessage.PRIORITIY_LOW.equals(message.priority)) {
388 // Low
389 imessage.addHeader("Importance", "Low");
390 imessage.addHeader("Priority", "Non-Urgent");
391 imessage.addHeader("X-Priority", "5"); // Lowest
392 //imessage.addHeader("X-MSMail-Priority", "Low");
393 // SpamAssassin Rule: MISSING_MIMEOLE
394 // Standard description: Message has X-MSMail-Priority, but no X-MimeOLE
395 // Explanation: The message is pretending to be generated by a Microsoft email program
396 // which uses the extension header X-MSMail-Priority,
397 // but is missing the extension header X-MimeOLE which is characteristic of Microsoft email.
398 // This suggests that the sender is using badly-written mailout software,
399 // rather than a genuine Microsoft email program.
400 } else if (EntityMessage.PRIORITIY_HIGH.equals(message.priority)) {
401 // High
402 imessage.addHeader("Importance", "High");
403 imessage.addHeader("Priority", "Urgent");
404 imessage.addHeader("X-Priority", "1"); // Highest
405 //imessage.addHeader("X-MSMail-Priority", "High");
406 }
407
408 // Sensitivity
409 // https://datatracker.ietf.org/doc/html/rfc4021#section-2.1.55
410 if (EntityMessage.SENSITIVITY_PERSONAL.equals(message.sensitivity))
411 imessage.addHeader("Sensitivity", "Personal");
412 else if (EntityMessage.SENSITIVITY_PRIVATE.equals(message.sensitivity))
413 imessage.addHeader("Sensitivity", "Private");
414 else if (EntityMessage.SENSITIVITY_CONFIDENTIAL.equals(message.sensitivity))
415 imessage.addHeader("Sensitivity", "Company-Confidential");
416

Callers 4

onSendMethod · 0.95
onExecuteMethod · 0.95
onExecuteMethod · 0.95
onAddMethod · 0.95

Calls 15

getInstanceMethod · 0.95
breadcrumbMethod · 0.95
setFlagMethod · 0.95
limitReferencesMethod · 0.95
formatMethod · 0.95
getFromMethod · 0.95
convertAddressMethod · 0.95
parseMethod · 0.95
updateMessageIDMethod · 0.95
eMethod · 0.95
toStringMethod · 0.95
toStringMethod · 0.95

Tested by

no test coverage detected