From 0413a5b88285843850b349d5b464354ee1659511 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Sun, 26 Apr 2026 16:08:04 +0200 Subject: [PATCH] fix: remove HTML document wrapper from email templates for GMX compat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GMX webmail broke after adding wrappers — the Logto SMTP connector sets these as nodemailer's html field, and GMX's sanitizer chokes on a full document inside its own page shell. Reverts to bare HTML fragments (the format that worked before 12:17 commit 484a388) while keeping the extra text paragraphs added for mail checker text-to-HTML ratio compliance. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../email-templates/forgot-password.html | 49 +++++++------------ .../resources/email-templates/generic.html | 49 +++++++------------ .../password-reset-notification.html | 47 +++++++----------- .../resources/email-templates/register.html | 49 +++++++------------ .../resources/email-templates/sign-in.html | 49 +++++++------------ .../saas/vendor/EmailTemplateLoadingTest.java | 11 ----- 6 files changed, 94 insertions(+), 160 deletions(-) diff --git a/src/main/resources/email-templates/forgot-password.html b/src/main/resources/email-templates/forgot-password.html index 42a14a4..719922c 100644 --- a/src/main/resources/email-templates/forgot-password.html +++ b/src/main/resources/email-templates/forgot-password.html @@ -1,34 +1,23 @@ - - - - - - - Reset your Cameleer password - - -
-
- Cameleer.io -
-
- -
-

Lost in the dunes?

-

No worries — enter this code to reset your password and get back on the trail.

-
-
- {{code}} -
+
+
+ Cameleer.io +
+
+ +
+

Lost in the dunes?

+

No worries — enter this code to reset your password and get back on the trail.

+
+
+ {{code}}
-

This code expires in 10 minutes. If you didn't request a password reset, you can safely ignore this email.

-

This password reset was requested for your Cameleer account. Cameleer is an observability platform for Apache Camel integrations providing real-time route tracing, message inspection, and performance monitoring. For security, this code can only be used once. If you continue to have trouble accessing your account, please contact your administrator for assistance.

-
-
-

Questions? Contact your administrator

-

Cameleer — Apache Camel observability

+

This code expires in 10 minutes. If you didn't request a password reset, you can safely ignore this email.

+

This password reset was requested for your Cameleer account. Cameleer is an observability platform for Apache Camel integrations providing real-time route tracing, message inspection, and performance monitoring. For security, this code can only be used once. If you continue to have trouble accessing your account, please contact your administrator for assistance.

- - +
+

Questions? Contact your administrator

+

Cameleer — Apache Camel observability

+
+
diff --git a/src/main/resources/email-templates/generic.html b/src/main/resources/email-templates/generic.html index fddf332..4de5e1d 100644 --- a/src/main/resources/email-templates/generic.html +++ b/src/main/resources/email-templates/generic.html @@ -1,34 +1,23 @@ - - - - - - - Your Cameleer verification code - - -
-
- Cameleer.io -
-
- -
-

Quick checkpoint

-

Here's your verification code. Just making sure it's really you at the reins.

-
-
- {{code}} -
+
+
+ Cameleer.io +
+
+ +
+

Quick checkpoint

+

Here's your verification code. Just making sure it's really you at the reins.

+
+
+ {{code}}
-

This code expires in 10 minutes.

-

You are receiving this email because a verification was requested on your Cameleer account. Cameleer is an observability platform for Apache Camel integrations providing real-time route tracing, message inspection, and performance monitoring. If you did not request this verification, please ignore this email or contact your administrator for assistance.

-
-
-

Questions? Contact your administrator

-

Cameleer — Apache Camel observability

+

This code expires in 10 minutes.

+

You are receiving this email because a verification was requested on your Cameleer account. Cameleer is an observability platform for Apache Camel integrations providing real-time route tracing, message inspection, and performance monitoring. If you did not request this verification, please ignore this email or contact your administrator for assistance.

- - +
+

Questions? Contact your administrator

+

Cameleer — Apache Camel observability

+
+
diff --git a/src/main/resources/email-templates/password-reset-notification.html b/src/main/resources/email-templates/password-reset-notification.html index 237cdea..ee8dea5 100644 --- a/src/main/resources/email-templates/password-reset-notification.html +++ b/src/main/resources/email-templates/password-reset-notification.html @@ -1,32 +1,21 @@ - - - - - - - Your password was reset - - -
-
- Cameleer.io -
-
- -
-

Your password was reset

-

Your Cameleer account password was successfully changed on {{timestamp}}.

-
-

Note: Multi-factor authentication (MFA) was not required for this password reset. We recommend enabling MFA to add an extra layer of security to your account.

-
-

If this wasn't you, contact your administrator immediately.

-

This is an automated security notification from your Cameleer account. Cameleer is an observability platform for Apache Camel integrations providing real-time route tracing, message inspection, and performance monitoring. You are receiving this notification because a password change was completed. For your security, we recommend reviewing your account activity and ensuring your credentials are kept safe.

+
+
+ Cameleer.io +
+
+ +
+

Your password was reset

+

Your Cameleer account password was successfully changed on {{timestamp}}.

+
+

Note: Multi-factor authentication (MFA) was not required for this password reset. We recommend enabling MFA to add an extra layer of security to your account.

-
-
-

Questions? Contact your administrator

-

Cameleer — Apache Camel observability

+

If this wasn't you, contact your administrator immediately.

+

This is an automated security notification from your Cameleer account. Cameleer is an observability platform for Apache Camel integrations providing real-time route tracing, message inspection, and performance monitoring. You are receiving this notification because a password change was completed. For your security, we recommend reviewing your account activity and ensuring your credentials are kept safe.

- - +
+

Questions? Contact your administrator

+

Cameleer — Apache Camel observability

+
+
diff --git a/src/main/resources/email-templates/register.html b/src/main/resources/email-templates/register.html index 415c9a2..4a7c228 100644 --- a/src/main/resources/email-templates/register.html +++ b/src/main/resources/email-templates/register.html @@ -1,34 +1,23 @@ - - - - - - - Your caravan pass is almost ready - - -
-
- Cameleer.io -
-
- -
-

Welcome to the caravan!

-

Enter this code to verify your email and claim your spot. The dunes wait for no one.

-
-
- {{code}} -
+
+
+ Cameleer.io +
+
+ +
+

Welcome to the caravan!

+

Enter this code to verify your email and claim your spot. The dunes wait for no one.

+
+
+ {{code}}
-

This code expires in 10 minutes. If you didn't request this, you can safely ignore this email — no camels were harmed.

-

Cameleer is an observability platform for Apache Camel integrations. It provides real-time route tracing, message inspection, and performance monitoring to help your team debug and optimize integration flows. Your account gives you access to your dedicated Cameleer instance where you can connect your Camel applications and start monitoring immediately.

-
-
-

Questions? Contact your administrator

-

Cameleer — Apache Camel observability

+

This code expires in 10 minutes. If you didn't request this, you can safely ignore this email — no camels were harmed.

+

Cameleer is an observability platform for Apache Camel integrations. It provides real-time route tracing, message inspection, and performance monitoring to help your team debug and optimize integration flows. Your account gives you access to your dedicated Cameleer instance where you can connect your Camel applications and start monitoring immediately.

- - +
+

Questions? Contact your administrator

+

Cameleer — Apache Camel observability

+
+
diff --git a/src/main/resources/email-templates/sign-in.html b/src/main/resources/email-templates/sign-in.html index 79eabb1..443c94b 100644 --- a/src/main/resources/email-templates/sign-in.html +++ b/src/main/resources/email-templates/sign-in.html @@ -1,34 +1,23 @@ - - - - - - - Your Cameleer sign-in code - - -
-
- Cameleer.io -
-
- -
-

Back at the oasis already?

-

Here's your sign-in code. The caravan master is checking credentials.

-
-
- {{code}} -
+
+
+ Cameleer.io +
+
+ +
+

Back at the oasis already?

+

Here's your sign-in code. The caravan master is checking credentials.

+
+
+ {{code}}
-

This code expires in 10 minutes.

-

You are receiving this email because a sign-in attempt was made on your Cameleer account. Cameleer is an observability platform for Apache Camel integrations providing real-time route tracing, message inspection, and performance monitoring. If you did not initiate this sign-in, please ignore this email or contact your administrator.

-
-
-

Questions? Contact your administrator

-

Cameleer — Apache Camel observability

+

This code expires in 10 minutes.

+

You are receiving this email because a sign-in attempt was made on your Cameleer account. Cameleer is an observability platform for Apache Camel integrations providing real-time route tracing, message inspection, and performance monitoring. If you did not initiate this sign-in, please ignore this email or contact your administrator.

- - +
+

Questions? Contact your administrator

+

Cameleer — Apache Camel observability

+
+
diff --git a/src/test/java/net/siegeln/cameleer/saas/vendor/EmailTemplateLoadingTest.java b/src/test/java/net/siegeln/cameleer/saas/vendor/EmailTemplateLoadingTest.java index 1af5d88..8fd650d 100644 --- a/src/test/java/net/siegeln/cameleer/saas/vendor/EmailTemplateLoadingTest.java +++ b/src/test/java/net/siegeln/cameleer/saas/vendor/EmailTemplateLoadingTest.java @@ -34,17 +34,6 @@ class EmailTemplateLoadingTest { } } - @Test - void templatesContainHtmlStructure() throws IOException { - for (String path : TEMPLATE_FILES) { - String content = new ClassPathResource(path).getContentAsString(StandardCharsets.UTF_8); - assertTrue(content.contains(""), - path + " must contain DOCTYPE declaration"); - assertTrue(content.contains(" tag"); - } - } - @Test void templatesContainWatermarkPlaceholder() throws IOException { for (String path : TEMPLATE_FILES) {