Skip to main content
Mail Templates in Joomla
On this page
# Topics

Mail Templates in Joomla

23 June 2026

Every Joomla website can send email: A new user registers and gets a welcome message. A visitor fills in a contact form and the owner gets a notification. Someone forgets their password and asks for a reset link. All of these messages come from one quiet, often forgotten corner of Joomla: the Mail Templates component.

Most site owners don't know it, so every automatic email keeps its default wording forever. That is a missed chance. With a few minutes of work you can change the subject lines, rewrite the text in your own voice, switch to nicely styled HTML emails, and even add your logo, all without touching a single line of code.

Joomla manages this through a small core component called Mail Templates (com_mails). It stores the text of every system email in the database, lets you edit it in the backend, and supports a per-language variant for each message.

How Joomla turns every automatic email into something you control.

This article explains how Mail Templates work, from editing the welcome email as a site owner to registering your own templates as a developer. The goal is to help owners, administrators, and developers take full control of the email Joomla sends.

1. The Basics

1.1 What Are Mail Templates?

A mail template is the stored text of one automatic email that Joomla sends. Instead of hard-coding the words "Thank you for registering" inside the program, Joomla keeps that text in the database. When an event happens, such as a new registration, Joomla loads the matching template, fills in the details (the user's name, the site name, an activation link), and sends the result.

The Mail Templates component (com_mails) is the backend screen where you read and edit those stored texts. It has shipped with Joomla core since Joomla 4.

In short, the component does three things:

  • It lists every mail template registered by Joomla and your extensions.
  • It lets you edit the subject, the plain-text body, and the HTML body of each one.
  • It lets you create a separate version of any template for each site language.

1.2 What It Does Not Do

This is the single most important thing to understand up front. The Mail Templates component manages the content of emails. It does not send them and it does not decide how they leave your server.

How email is actually delivered, by PHP mail, Sendmail, or SMTP, is configured in System → Global Configuration → Server → Mail Settings. Think of it this way: Global Configuration is the post office, and Mail Templates is the stationery. You can have beautiful stationery and still fail to deliver if the post office is closed. We come back to this split in section 12.

1.3 Where Do I Find It?

In the Joomla 6 backend the component lives under the System menu:

System → Templates → Mail Templates     (the list of all templates)
System → Mail Templates → Options        (component-wide settings)

The direct link is index.php?option=com_mails&view=templates. The component files live in administrator/components/com_mails/.

1.4 A First Look at the List

Open the list and you see one row per template. Each row shows a template ID like com_users.password_reset or com_contact.mail, the subject, and which extension owns it. The ID uses dot notation: the first part is the extension (com_users), and the rest names the specific message.

This naming tells you at a glance who sends what. Everything starting with com_users is part of the user system. Everything starting with com_contact belongs to the contact forms.

Back to top

2. Anatomy of a Mail Template

Click any row to open the editor. A single template is made of a few clear parts. Understanding them makes everything else easy.

2.1 The Editable Fields

FieldWhat it holds
Subject The email subject line. May contain placeholder tags.
Body The plain-text version of the message.
HTML Body The HTML version, edited with a normal WYSIWYG editor.
Attachments An optional list of files to attach to the email.

The Subject and Body are always present. The HTML Body only matters if you send HTML email (see section 5). Below these fields sits an Options tab with per-template mail settings, covered in section 8.

2.2 The Two Identifiers

Every template is identified by two values together, not one:

  • Template ID: the unique key, for example com_users.password_reset.
  • Language: the language code, for example en-GB, or an empty value for the base template that applies to all languages.

This pair is the key to multilingual email, which we cover in section 6. For now, just remember: one ID can have several language versions.

2.3 The Available Tags

Each template has a fixed set of placeholder tags it understands, shown in the editor. The contact form template, for example, offers tags such as {SITENAME}, {NAME}, {EMAIL}, {SUBJECT}, and {BODY}. You can only use the tags a template provides, because Joomla only supplies data for those. We explain how tags work in section 4.

Back to top

3. Editing a Template as an Administrator

This is the everyday task: changing the wording of an email. Let us walk through it with the welcome email new users receive.

3.1 A Worked Example

  1. Go to System → Templates → Mail Templates.
  2. Find com_users.registration.user.admin_activation (the message sent to a new user who needs admin approval).
  3. Click it to open the editor.
  4. Change the Subject, for example to Welcome to {SITENAME} - one more step.
  5. Rewrite the Body in your own words, keeping the tags you need such as {NAME} and {ACTIVATE}.
  6. Click Save.

The very next registration uses your new text. There is no cache to clear and no file to upload.

3.2 Keep the Tags You Need

The most common editing mistake is deleting a tag by accident. If you remove {ACTIVATE} from an activation email, the user never gets the activation link and can never finish signing up. Rewrite the sentences freely, but keep the tags that carry the important values.

To make this easier, the editor shows the template's available tags as clickable buttons. Put the cursor where you want a value and click the tag to insert it, instead of typing the braces by hand. This avoids typos like {NMAE} that silently fail.

3.3 Resetting to Default

If you change a template too far and want the original wording back, you do not have to reinstall anything. The editor has three Reset To Default buttons, one each for the Subject, the Body, and the HTML Body. Each button restores that field to the default content Joomla shipped for the template.

The reset works per field, so you can restore the subject while keeping your edited body, or the other way around. The change only becomes permanent when you click Save, so a reset you did not mean to keep can still be undone by leaving without saving.

3.4 Templates Cannot Be Deleted

You will notice there is no Delete button in the list. This is on purpose. A template exists because some extension expects to send it. Deleting it would break that feature. You can edit a template, but core does not let you remove one through the interface.

Back to top

4. Placeholder Tags

Tags are how Joomla puts live data into a fixed text. They are the heart of the whole system.

4.1 How a Simple Tag Works

A tag is a word in capitals between curly braces, like {NAME}. When Joomla sends the email, it replaces each tag with the matching value. Tag names are not case sensitive, so {NAME} and {name} behave the same.

Template body:   Hello {NAME}, welcome to {SITENAME}.
Data supplied:   NAME = Anna, SITENAME = Peter's Joomla Site
Result sent:     Hello Anna, welcome to Peter's Joomla Site.

You can only use tags that the template lists, because the code behind that template supplies exactly those values and no others.

4.2 Repeating (Array) Tags

Some emails need to list several items, such as a digest of recent activity. For that, Joomla supports a repeating block:

{LOGS}
 - {MESSAGE} on {DATE}
{/LOGS}

The text between {LOGS} and {/LOGS} repeats once for every item in the supplied list, with the inner tags filled in each time. The action log notification email uses exactly this pattern.

4.3 Plain Text and HTML Versions of a Tag

Links often need to look different in plain text and in HTML. Joomla solves this with paired tags. The password reset email, for example, offers both {LINK_TEXT} and {LINK_HTML}. The plain body uses the bare URL, while the HTML body uses a clickable anchor. Use the right one in the right body field.

4.4 Safe and Unsafe Tags

Some tag values come from visitors, such as the message a stranger types into a contact form. In an HTML email, raw visitor input could contain HTML or script. Joomla marks such tags as unsafe and automatically escapes them in the HTML body, so the text shows as written instead of running as code. You do not configure this; it is built into the templates that need it. Just know that visitor-supplied tags are handled safely.

Back to top

5. HTML Versus Plain Text Emails

5.1 The Mail Style Option

By default Joomla sends plain text email. To send styled email you change one component option at Mail Templates → Options → Mail Style:

ValueWhat gets sent
plaintext Plain text only. The default.
html HTML only.
both A multipart email with both versions; the mail client picks one.

The safest modern choice is both. HTML readers see your styled email, while text-only clients and strict spam filters still get a clean plain version.

5.2 The HTML Layout Wrapper

When HTML email is on, Joomla does not just send the raw HTML Body. It wraps that content in a layout, a surrounding template that adds a consistent header, footer, and styling. The default layout is called mailtemplate. This means you write only the message itself in the HTML Body field, and Joomla frames it for you.

You control the wrapper with two options:

OptionEffect
Disable HTML Layout Turn the wrapper off and send the HTML Body as-is.
HTML Layout Choose which layout file frames the content.

The component options include a Logo setting. Pick an image with the media field, and the default HTML layout embeds it at the top of every HTML email. The logo is attached inline, so it shows even when the mail client blocks remote images. This single setting is the easiest way to make Joomla email look like it belongs to your brand.

5.4 Overriding the Layout for Full Control

The wrapper is a normal Joomla layout, so you can override it in your template for complete control over the email design. The default file lives at:

layouts/joomla/mail/mailtemplate.php

Copy it into your site template's override folder and edit the copy:

templates/your_template/html/layouts/joomla/mail/mailtemplate.php

The fastest way to create that file is System → Site Templates → your template → Create Overrides → Layouts → joomla → mail. From there you can set table widths, fonts, and colours that survive HTML emails. Keep it table-based and inline-styled, because email clients ignore most modern CSS. A template can also offer several layouts, so different emails can use different designs.

Back to top

6. Multilingual Mail Templates

6.1 One Template, Many Languages

On a multilingual site, a Dutch visitor should get a Dutch email and a French visitor a French one. Joomla handles this with the second identifier from section 2.2: the language code. Each template can have a separate row per language, all sharing the same template ID.

com_users.password_reset  +  (base)    the fallback for any language
com_users.password_reset  +  en-GB     the English version
com_users.password_reset  +  nl-NL     the Dutch version

6.2 How Joomla Chooses

When Joomla sends a template, it looks for the row that matches the active language. If no row exists for that language, it falls back to the base row (the one with an empty language value). So you do not have to translate every template: untranslated ones simply use the default text.

6.3 Creating a Translation

To add a language version, open a template and use the language selector in the editor toolbar to switch to the target language, then save your translated text. Joomla stores it as a new row for that language, leaving the original untouched. The next email in that language uses your translation automatically.

6.4 A Practical Tip

Translate the high-volume, user-facing templates first: registration, activation, and password reset. The rarely seen admin notifications can stay in the default language without anyone minding.

Back to top

7. Attachments

7.1 The Attachment Folder

A template can carry file attachments, but for security Joomla does not let you attach any file on the server. You first set an Attachment Folder in Mail Templates → Options. Only files inside that folder can be attached. This stops a template from being pointed at a sensitive file elsewhere on the system.

7.2 Adding an Attachment to a Template

Inside the template editor, the Attachments area is a small repeatable table. Each row has two values:

FieldMeaning
File A file chosen from the configured attachment folder.
Name The filename the recipient sees (can include tags).

A typical use is attaching a terms-and-conditions PDF to the registration email, or an invoice template to an order confirmation sent by a third-party extension.

7.3 When to Avoid Attachments

Attachments make emails bigger and more likely to be flagged as spam. For documents that change often, it is usually better to include a download link in the body than to attach the file itself.

Back to top

8. Per-Template Mail Configuration

8.1 Why Override the Global Settings

Normally every email leaves your site using the one sender address and one transport set in Global Configuration. Sometimes you want a single template to behave differently, for example to send support replies from support@ while everything else comes from noreply@. Joomla allows this with a per-template override.

8.2 Turning It On

The override is off by default and guarded by a component option. Enable Mail Templates → Options → Alternative Mail Configuration = Yes first. After that, each template gains an Options tab where you can set:

SettingPurpose
From Email / From Name The sender shown to the recipient for this template.
Reply To / Reply To Name Where replies should go.
Mailer Transport for this template: PHP mail, Sendmail, or SMTP.
SMTP settings Host, port, security, and login when the mailer is SMTP.

8.3 Sending a Copy

A separate option, Send Copy To Email, can be enabled in the component options. Once on, each template gains a Copy To field, so you can quietly send a copy of, say, every registration email to an internal mailbox for record keeping.

8.4 Use This Sparingly

Per-template SMTP settings are powerful but easy to forget about. If support email suddenly stops, an override hidden inside one template is a hard place to look. Keep overrides to a minimum and write down anywhere you use them.

Back to top

9. Under the Hood: The Database

9.1 The Single Table

Every mail template lives in one table:

#__mail_templates     one row per template per language

There is no separate metadata or assets table. The columns are:

template_id    varchar(127)   the key, e.g. com_users.password_reset
extension      varchar(127)   owning extension, e.g. com_users
language       char(7)        language code, or empty for the base row
subject        varchar(255)   the subject line
body           text           the plain-text body
htmlbody       mediumtext     the HTML body
attachments    text           JSON list of attachments
params         text           JSON of tags and per-template settings

9.2 The Composite Key

The primary key is the pair (template_id, language), not template_id alone. That is exactly why one template can have many language rows: each row is a unique combination of ID and language. The base row simply uses an empty language value.

9.3 What Lives in JSON

Two columns hold JSON rather than plain values:

  • attachments: a list of objects, each with a file and a name.
  • params: the list of allowed tags plus any per-template mail settings (sender, reply-to, SMTP, copy-to).

This is why the available tags differ per template: they are stored in that template's own params.

9.4 Reading Templates with SQL

To see which templates you have customised away from a base row, or to audit a multilingual setup, a quick query helps. Replace jos_ with your real prefix:

SELECT template_id, language, subject
FROM jos_mail_templates
ORDER BY template_id, language;
Back to top

10. The MailTemplate API (Developer View)

For developers, the whole system is driven by one class: Joomla\CMS\Mail\MailTemplate in libraries/src/Mail/MailTemplate.php. It has shipped since Joomla 4.0.

10.1 Sending a Template

Sending an email from a template is short and readable:

use Joomla\CMS\Mail\MailTemplate;
use Joomla\CMS\Factory;

$app  = Factory::getApplication();
$lang = $app->getLanguage()->getTag();

$mailer = new MailTemplate('com_users.password_reset', $lang);
$mailer->addTemplateData([
    'name'      => $user->name,
    'sitename'  => $app->get('sitename'),
    'link_text' => $plainUrl,
    'link_html' => '<a href="' . $url . '">Reset password</a>',
]);
$mailer->addRecipient($user->email, $user->name);
$mailer->send();

10.2 The Main Methods

MethodWhat it does
__construct($templateId, $language) Loads the template for that ID and language.
addTemplateData($data) Supplies the values that fill the tags.
addRecipient($mail, $name, $type) Adds a To, CC, or BCC recipient.
setReplyTo($mail, $name) Sets the reply-to address.
addAttachment($name, $file) Attaches a file at send time.
send() Renders the tags and sends the email.

10.3 What send() Actually Does

send()
 └─ Load the row for (template_id, language), fall back to base
    └─ Run subject + body through Text::_() for translation
    └─ Replace every {TAG} with the supplied data
    └─ Escape unsafe tags inside the HTML body
    └─ Wrap the HTML body in the layout, add the inline logo
    └─ Apply any per-template sender / SMTP override
    └─ Attach files from the attachment folder
    └─ Hand the finished message to the mailer to send

Notice that the subject and body pass through Text::_(). That means a template can store a language key instead of literal text, and Joomla translates it from the language files. This is how core templates stay translatable out of the box.

10.4 The onMailBeforeRendering Event

Before send() replaces the tags, it dispatches an event so other plugins can change the email on the fly:

$app->getDispatcher()->dispatch(
    'onMailBeforeRendering',
    new BeforeRenderingMailTemplateEvent('onMailBeforeRendering', [
        'templateId' => $this->template_id,
        'subject'    => $this,
    ])
);

A plugin listening to onMailBeforeRendering receives the MailTemplate object and the template ID, so it can add extra placeholder data, inject a custom field value, append a tracking link, or add a BCC for auditing, without editing core or the template itself. This is the clean, upgrade-safe way to enrich emails site-wide.

public function onMailBeforeRendering(BeforeRenderingMailTemplateEvent $event): void
{
    if ($event->getTemplateId() === 'com_users.password_reset') {
        $event->getTemplate()->addTemplateData(['support_phone' => '+31 555 123']);
    }
}
Back to top

11. Registering Your Own Template

If you build an extension that sends email, you should register a mail template for it. Then site owners can edit your wording the same way they edit core email, and your text becomes translatable.

11.1 Creating the Template

The class offers a helper to insert a new base template:

use Joomla\CMS\Mail\MailTemplate;

MailTemplate::createTemplate(
    'com_myshop.order_confirmation',          // template id
    'PLG_MYSHOP_ORDER_SUBJECT',               // subject (a language key)
    'PLG_MYSHOP_ORDER_BODY',                  // plain body (a language key)
    ['name', 'order_id', 'total', 'sitename'] // the allowed tags
);

The first segment of the ID (com_myshop) becomes the owning extension automatically. There is also updateTemplate() to change a template and deleteTemplate() to remove all its language rows, which your extension should call from its uninstall script.

11.2 Where to Register

Register the template when your extension installs, in the install or update method of your installer script, so the row exists before your code ever tries to send it. Use language keys for the subject and body so translators can localise the text in your language files.

11.3 Why Bother

Many extensions hard-code their emails and give the owner no way to change them. By registering a proper mail template you get backend editing, multilingual support, the HTML layout, and attachments for free, and your extension feels like a native part of Joomla.

Back to top

12. Mail Templates Versus Mail Transport

This section deserves its own space because confusing the two is the number-one source of email trouble in Joomla.

ConcernWhere it lives
The words in the email Mail Templates (com_mails)
HTML vs plain, logo, layout Mail Templates options
Per-template sender override Mail Templates (when enabled)
How email leaves the server Global Configuration → Server → Mail
Default sender for the whole site Global Configuration
SMTP host, port, login (site-wide) Global Configuration

If no email arrives at all, the problem is almost always transport, so check Global Configuration and your SMTP details, not the templates. If email arrives but says the wrong thing, that is a template. Knowing which screen owns which problem saves hours of guessing.

A quick way to test transport on its own is the test mail button in Global Configuration, which uses the com_config.test_mail template. If that arrives, your post office works and any remaining issue is in the stationery.

Back to top

13. Web Services API

Mail Templates are not exposed through Joomla's Web Services (REST) API in core. There is no com_mails endpoint under /api/index.php/v1/. Templates are treated as an administrator-only configuration area, edited in the backend, not managed remotely.

If you genuinely need to manage templates from outside Joomla, your options are to write directly to the #__mail_templates table from a trusted script, or to build a small custom API plugin that wraps MailTemplate::createTemplate() and updateTemplate(). For almost every site, the backend screen is enough.

Back to top

14. Deliverability: The SEO of Email

Email has no search rankings, but it has an equivalent battle: getting into the inbox instead of the spam folder. A perfect template is wasted if the message never arrives. These factors decide that, and most live outside the template:

  • SPF, DKIM, and DMARC: DNS records that prove your server is allowed to send mail for your domain. Without them, mailbox providers distrust your email. This is the single biggest deliverability factor and it is set at the DNS level, not in Joomla.
  • A real From address: send from an address at your own domain, not a free gmail.com address. Spoofing another domain gets you blocked.
  • Authenticated SMTP: a proper SMTP relay or transactional mail service delivers far better than raw PHP mail. Set this in Global Configuration.
  • A plain-text part: use Mail Style both so spam filters always see clean text alongside your HTML.
  • Honest subjects: avoid all-caps and spammy words in the subjects you edit. This is the one deliverability lever that does live in the template.

In short: write good templates, but win deliverability at the DNS and transport level.

Back to top

15. Common Mistakes and Pitfalls

15.1 Editing Templates to Fix Non-Delivery

Symptom: No email arrives, so you keep rewriting the templates.

Fix: Templates are content, not delivery. Test transport with the Global Configuration test mail button and fix SMTP settings there instead.

15.2 A Deleted Tag Breaks the Email

Symptom: Users get a registration email with no activation link and cannot finish signing up.

Fix: You removed the {ACTIVATE} tag while editing. Add it back. Keep every tag that carries a required value; only change the words around it.

15.3 HTML Looks Broken in Some Clients

Symptom: The email looks fine in one client and a mess in another.

Fix: Keep the HTML Body simple and let the default layout do the styling. Email clients support far less CSS than browsers. Use Mail Style both so there is always a plain fallback.

15.4 A Forgotten Per-Template Override

Symptom: One type of email comes from the wrong address or fails while everything else works.

Fix: Check that template's Options tab for an alternative mail configuration you set earlier and forgot.

15.5 Missing Translations Send the Wrong Language

Symptom: A Dutch user gets an English email.

Fix: There is no nl-NL row for that template, so Joomla used the base row. Create the Dutch version from the language selector in the editor.

Symptom: The HTML email shows a raw URL, or the plain email shows HTML markup.

Fix: Use {LINK_HTML} in the HTML Body and {LINK_TEXT} in the plain Body, not the other way around.

Back to top

16. Best Practices

If you remember only a few things from this article, remember these:

  • Mail Templates control the content; Global Configuration controls delivery. Fix the right screen.
  • Never delete a tag you do not understand. Rewrite the words, keep the tags.
  • Set Mail Style to both so every recipient gets a usable version.
  • Add your logo once in the options to brand every HTML email.
  • Translate the user-facing templates first: registration, activation, password reset.
  • Keep the HTML Body simple and lean on the layout for styling.
  • Use per-template overrides sparingly, and write down where you use them.
  • Win the inbox with SPF, DKIM, DMARC, and authenticated SMTP, not with template edits.
  • If you build an extension that sends email, register a proper mail template for it.
Back to top

17. Quick Reference

COMPONENT      System → Templates → Mail Templates
DIRECT LINK    index.php?option=com_mails&view=templates
OPTIONS        Mail Templates → Options
TABLE          #__mail_templates  (key: template_id + language)
KEY COLUMNS    template_id, language, subject, body, htmlbody
JSON COLUMNS   attachments, params (tags + per-template settings)
TEMPLATE ID    extension.message, e.g. com_users.password_reset
MAIL STYLE     plaintext (default) | html | both
HTML WRAPPER   default layout "mailtemplate", optional logo
LAYOUT OVERRIDE templates/<tpl>/html/layouts/joomla/mail/mailtemplate.php
RESET          per-field Reset To Default buttons in the editor
EVENT          onMailBeforeRendering (BeforeRenderingMailTemplateEvent)
TAGS           {NAME}  array {LOGS}..{/LOGS}  pair {LINK_TEXT}/{LINK_HTML}
LANGUAGE       per-language rows, base row (empty) is the fallback
ATTACHMENTS    only from the configured Attachment Folder
OVERRIDE       Options → Alternative Mail Configuration = Yes
DELIVERY       NOT here - Global Configuration → Server → Mail
API CLASS      Joomla\CMS\Mail\MailTemplate (since Joomla 4.0)
REGISTER       MailTemplate::createTemplate(id, subject, body, tags)
WEB SERVICES   not exposed via the REST API
Back to top

18. Summary

The Mail Templates component is small, quiet, and easy to overlook, yet it controls every automatic email your Joomla site sends. With it you can:

  • Rewrite subjects and bodies in your own voice, with no code.
  • Send styled HTML email with your logo and a consistent layout.
  • Translate each message per language, with a sensible fallback.
  • Attach files safely from a controlled folder.
  • Override the sender for individual templates when you need to.
  • Register your own templates as a developer, so your extension feels native.

The key mindset is the split between content and delivery: templates shape the message, while Global Configuration and your DNS decide whether it arrives. Get both right and your site speaks to users clearly and reliably.

If your Joomla emails still use the default wording, look strange in some clients, or quietly land in spam, it pays to start with the Mail Templates component and the mail settings behind it. A few careful changes here make every message your site sends look and feel like it truly belongs to you.

Back to top
Mail Templates in Joomla
Peter Martin
Peter Martin
Joomla Specialist

Peter is a Joomla specialist and a Linux admin for fast, secure and scalable websites.

Frequently Asked Questions

How do I customize Joomla's automatic emails?

Joomla stores all system emails in the Mail Templates component (com_mails). Go to:

System → Templates → Mail Templates

There you can edit the email subject, plain-text body, and HTML body for messages such as user registration, password resets, and contact form notifications. Changes take effect immediately without editing code or uploading files.

Why are my Joomla emails not being delivered?

Mail Templates only control the content of emails, not the delivery process. If emails are not arriving, check:

System → Global Configuration → Server → Mail Settings

SMTP configuration, authentication, SPF, DKIM, and DMARC settings are usually the cause of delivery problems, not the mail template itself.

Can I send branded HTML emails with my logo?

Yes. Joomla supports HTML email and can automatically add a logo and layout wrapper around your message. Set:

Mail Templates → Options → Mail Style → both

Then configure a logo in the Mail Templates options. Using both sends HTML and plain-text versions together, which provides the best compatibility and deliverability.

How do placeholder tags like {NAME} and {SITENAME} work?

Tags are replaced with real data when the email is sent. Example:

Hello {NAME}, welcome to {SITENAME}.

might become:

Hello Anna, welcome to My Website.

Be careful not to remove important tags such as {ACTIVATE} in activation emails, otherwise users may not receive the information they need to complete the process.

Can Joomla send emails in multiple languages?

Yes. Each mail template can have separate language versions, for example:

  • en-GB
  • nl-NL
  • es-ES
  • de-DE

When Joomla sends an email, it first looks for a template matching the user's language. If no translation exists, Joomla falls back to the default template. This allows multilingual websites to send registration, activation, and password reset emails in the visitor's preferred language.

Can I completely redesign Joomla's email layout?

Yes. Joomla uses a layout file (mailtemplate.php) to wrap HTML emails. Developers can create a template override and fully customize branding, structure, fonts, and styling while keeping the solution update-safe.