From 95b7784a422624ac2bcb665c178cabd725991449 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 1 Dec 2025 14:19:02 +0100 Subject: [PATCH] :bug: Change internal ordering on how email parts are assembled This fixes the html email rendering on gmail. Other clients (like proton, emailcatcher) properly renders html independently of the order of parts on the multipart email structure but gmail requires that html should be the last one. --- backend/src/app/email.clj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/src/app/email.clj b/backend/src/app/email.clj index 91563b4d95..43361039d9 100644 --- a/backend/src/app/email.clj +++ b/backend/src/app/email.clj @@ -106,17 +106,17 @@ (let [content-part (MimeBodyPart.) alternative-mpart (MimeMultipart. "alternative")] + (when-let [content (get body "text/plain")] + (let [text-part (MimeBodyPart.)] + (.setText text-part ^String content ^String charset) + (.addBodyPart alternative-mpart text-part))) + (when-let [content (get body "text/html")] (let [html-part (MimeBodyPart.)] (.setContent html-part ^String content (str "text/html; charset=" charset)) (.addBodyPart alternative-mpart html-part))) - (when-let [content (get body "text/plain")] - (let [text-part (MimeBodyPart.)] - (.setText text-part ^String content ^String charset) - (.addBodyPart alternative-mpart text-part))) - (.setContent content-part alternative-mpart) (.addBodyPart mixed-mpart content-part))