diff --git a/app/config/locale/templates/email-certificate-failed.tpl b/app/config/locale/templates/email-certificate-failed.tpl
index 18751ff412..0363fc6538 100644
--- a/app/config/locale/templates/email-certificate-failed.tpl
+++ b/app/config/locale/templates/email-certificate-failed.tpl
@@ -4,7 +4,9 @@
|
- {{error}}
+
+ {{error}}
+
|
diff --git a/app/config/locale/translations/en.json b/app/config/locale/translations/en.json
index 72bb9c099e..8c908ae5ab 100644
--- a/app/config/locale/translations/en.json
+++ b/app/config/locale/translations/en.json
@@ -43,6 +43,12 @@
"emails.invitation.footer": "If you are not interested, you can ignore this message.",
"emails.invitation.thanks": "Thanks",
"emails.invitation.signature": "{{project}} team",
+ "emails.certificate.subject": "Certificate failure for %s",
+ "emails.certificate.hello": "Hello",
+ "emails.certificate.body": "Certificate for your domain '{{domain}}' could not be generated. This is attempt no. {{attempt}}, and the failure was caused by: {{error}}",
+ "emails.certificate.footer": "Your previous certificate will be valid for 30 days since the first failure. We highly recommend investigating this case, otherwise your domain will end up without a valid SSL communication.",
+ "emails.certificate.thanks": "Thanks",
+ "emails.certificate.signature": "{{project}} team",
"sms.verification.body": "{{secret}}",
"locale.country.unknown": "Unknown",
"countries.af": "Afghanistan",
diff --git a/src/Appwrite/Platform/Workers/Certificates.php b/src/Appwrite/Platform/Workers/Certificates.php
index ad6cf09fa7..58dc1dd28a 100644
--- a/src/Appwrite/Platform/Workers/Certificates.php
+++ b/src/Appwrite/Platform/Workers/Certificates.php
@@ -439,40 +439,24 @@ class Certificates extends Action
$locale = new Locale(System::getEnv('_APP_LOCALE', 'en'));
- // Send mail to administratore mail
+ // Send mail to administrator mail
$template = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-certificate-failed.tpl');
$template->setParam('{{domain}}', $domain);
$template->setParam('{{error}}', \nl2br($errorMessage));
$template->setParam('{{attempts}}', $attempt);
-
- // TODO: Use setbodyTemplate once #7307 is merged
- $subject = 'Certificate failed to generate';
- $body = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-base-styled.tpl');
-
- $subject = \sprintf($locale->getText("emails.certificate.subject"), $domain);
-
- $message = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-inner-base.tpl');
- $message
- ->setParam('{{body}}', $locale->getText("emails.certificate.body"), escapeHtml: false)
- ->setParam('{{hello}}', $locale->getText("emails.certificate.hello"))
- ->setParam('{{footer}}', $locale->getText("emails.certificate.footer"))
- ->setParam('{{thanks}}', $locale->getText("emails.certificate.thanks"))
- ->setParam('{{signature}}', $locale->getText("emails.certificate.signature"));
- $body = $message->render();
+ $body = $template->render();
$emailVariables = [
'direction' => $locale->getText('settings.direction'),
- 'domain' => $domain,
- 'error' => '
' . $errorMessage . '
',
- 'attempt' => $attempt,
- 'project' => 'Console',
- 'redirect' => 'https://' . $domain,
];
+ $subject = \sprintf($locale->getText("emails.certificate.subject"), $domain);
+
$queueForMails
->setSubject($subject)
->setBody($body)
->setName('Appwrite Administrator')
+ ->setbodyTemplate(__DIR__ . '/../../../../app/config/locale/templates/email-base-styled.tpl')
->setVariables($emailVariables)
->setRecipient(System::getEnv('_APP_EMAIL_CERTIFICATES', System::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS')))
->trigger();