Skip to main content
Email in Joomla
On this page

Email in Joomla

26 June 2026

Email is the quiet workhorse behind almost every Joomla site. New users get a welcome message, visitors fill in a contact form and you get a notification, someone asks for a password reset, a newsletter goes out. When all of this works, nobody notices. When it stops, you get the dreaded support message: "I filled in your form and never heard back." Most of the time the form was fine. The email simply never left the building.

This article explains how email and Joomla fit together, from the ground up. It covers what email really is and how it travels, the difference between webmail, an email client, and a website sending mail, how to set up the Joomla mailer in Global Configuration, why SMTP beats raw PHP mail, how to connect Google Workspace or Microsoft 365, and why SPF, DKIM, and DMARC decide whether your mail reaches the inbox. It ends with how extensions like RSForm Pro and AcyMailing handle mail differently.

Sending email is easy. Getting it delivered is the real skill.

The goal is simple: help owners, administrators, and developers understand the whole path an email takes, so you can set it up once and trust it.

1. The Basics: How Email Actually Works

Before touching any Joomla setting, it helps to know what happens when an email is sent. Email is not one system. It is a chain of separate services that hand a message from one to the next, a bit like the postal service moving a letter.

1.1 The Journey of One Message

When your site sends an email to This email address is being protected from spambots. You need JavaScript enabled to view it., the message passes through several stages:

Your site → a sending server (MTA) → the internet → the recipient's
mail server → the recipient's mailbox → Anna reads it

The piece that actually transports mail between servers is called an MTA (Mail Transfer Agent). It speaks a protocol called SMTP (Simple Mail Transfer Protocol). SMTP is the language servers use to say "I have a message for this address, will you take it?"

One step is easy to miss: how does the sending server know where to deliver mail for example.com? It asks DNS for the domain's MX record (Mail Exchange), which names the server that receives mail for that domain. So DNS does not just point a domain at a website; a separate MX record points the same domain at its mail server. The DNS records that protect your own outgoing mail (SPF, DKIM, DMARC) are covered in section 7 and, in full depth, in the companion Focus On article on Email Deliverability.

1.2 Two Sides of Email: Sending and Receiving

It is important to split email into two jobs that have nothing to do with each other:

  • Sending uses SMTP. This is the only side a Joomla site cares about. A website sends mail; it never receives it.
  • Receiving and reading uses other protocols, mainly IMAP and the older POP3. These let a person download and read mail from a mailbox.

Your Joomla site only ever sends. It does not have a mailbox and it does not check for replies. When you set "Reply To" in Joomla, replies go to a normal human mailbox somewhere else, not back to the website.

1.3 The Post Office Analogy

Think of it like sending a paper letter:

  • You write the letter (Joomla builds the message).
  • You drop it at the post office (Joomla hands it to a sending server over SMTP).
  • The postal network carries it (servers relay it across the internet).
  • It lands in a mailbox (the recipient's mail server stores it).
  • The person opens their mailbox (an email client or webmail shows it).

Joomla's job ends at "drop it at the post office." Everything after that depends on whether the post office trusts you, which is exactly what SPF, DKIM, and DMARC are about. We get there in section 7.

Back to top

2. Webmail, Email Client, and a Website Sending Email

People often mix up three very different things that all involve email. Understanding the difference clears up a lot of confusion.

2.1 Webmail

Webmail is a website you log in to in order to read and write mail. Gmail in the browser, Outlook.com, and your hosting provider's Roundcube or Horde are all webmail. You open a browser, type your password, and you see your inbox. The mail lives on a server; the browser is just a window onto it.

2.2 Email Client

An email client is a program installed on your computer or phone that does the same job without a browser. Thunderbird, Apple Mail, and the Outlook desktop app are email clients. They connect to your mailbox with IMAP (to read) and SMTP (to send), and they keep a local copy of your mail.

Webmail and an email client are two doors into the same mailbox. Both are about a person reading and writing their own mail.

2.3 A Website Sending Email

A Joomla site sending email is a completely different thing. There is no person and no mailbox. Joomla builds a message in code and hands it straight to a sending server over SMTP. It is automated, one-directional, and unattended.

ToolWho uses itWhat it does
Webmail A person, in a browser Reads and sends their own mail
Email client A person, in an app Reads and sends their own mail
Joomla site Software, automatically Only sends, never reads

2.4 Why This Matters for Joomla

Because a website only sends, it needs a way to hand mail to a sending server. It has no inbox to log into. This is why "just use my Gmail" is not quite right: what Joomla actually needs is the SMTP sending part of an email account, with a server name, a port, and a login. We use exactly those details in sections 4 and 6.

Back to top

3. How Joomla Sends Email: The Mailer Setting

Joomla offers three ways to send mail. You pick one in Global Configuration with the Mailer setting. Internally, all three end up driving PHPMailer, the well-known PHP mail library bundled with Joomla, but they differ a lot in reliability.

3.1 The Three Mailer Options

Mailer valueHow it sendsReliability
mail PHP's built-in mail() function on the web server Low
sendmail A local Sendmail-style program on the server Medium
smtp Connects to a real mail server with a login High

3.2 PHP Mail

The mail option asks the web server itself to send the message. It is the default and needs no configuration, which is why it is so common. The problem is that a typical web server is not a proper mail server. It often has no correct sender identity, no authentication, and a poor reputation, so the big mailbox providers quietly drop the mail or mark it as spam.

3.3 Sendmail

The sendmail option hands the message to a local mail program at a path like /usr/sbin/sendmail. It works only if your hosting actually runs such a program and has it configured well, which is increasingly rare on shared hosting.

3.4 SMTP

The smtp option tells Joomla to log in to a real mail server, exactly like an email client would, and send through it. This is the option you want in almost every case. Sections 5 and 6 explain why and how.

Back to top

4. Configuring the Mailer in Global Configuration

All site-wide mail settings live in one screen. As an administrator you find them at:

System → Global Configuration → Server tab → Mail Settings

The direct link is index.php?option=com_config, then open the Server tab.

4.1 The Settings, One by One

SettingConfig keyWhat it does
Send Mail mailonline Master on/off switch for all email.
Mailer mailer mail, sendmail, or smtp.
From Email mailfrom The default sender address.
From Name fromname The default sender name.
Reply To Email replyto Where human replies should go.
Reply To Name replytoname The reply-to display name.
Sendmail Path sendmail Path to the Sendmail program (only for the sendmail mailer).
SMTP Host smtphost The mail server address (only for SMTP).
SMTP Port smtpport The port number, usually 587 or 465.
SMTP Security smtpsecure none, ssl, or tls.
SMTP Authentication smtpauth Whether the server needs a login.
SMTP Username smtpuser The login username.
SMTP Password smtppass The login password.

Joomla cleverly hides the SMTP fields until you choose smtp as the Mailer, and hides the username and password until you turn SMTP Authentication on. So the screen always shows only the fields that matter for your choice.

4.2 Set a Real From Address

The From Email should be an address at your own domain, such as This email address is being protected from spambots. You need JavaScript enabled to view it.. Never set it to a free address like This email address is being protected from spambots. You need JavaScript enabled to view it.. Sending "from" a domain you do not control is spoofing, and modern mail systems block it. We explain the reason in section 7.

4.3 Where It Is Stored

These values are written to configuration.php in the site root, as plain PHP properties such as $mailer, $smtphost, and $smtppass. That is worth knowing: the SMTP password sits in that file in readable form, so the file must never be public and its permissions must be tight.

4.4 Always Send a Test Mail

At the top of the Global Configuration screen there is a Send Test Mail button. After saving your settings, click it. Joomla sends a small message to the From address using your exact settings. If it arrives, transport works. If it errors, you get the real reason (wrong port, bad login, blocked connection) right there, which saves hours of guessing.

Back to top

5. Why You Should Use SMTP

If you take one practical step from this article, make it this: set the Mailer to smtp and point it at a proper mail server. Here is why SMTP wins over the other two options.

5.1 Authentication Builds Trust

With SMTP you log in with a username and password. The sending server knows exactly who you are and is willing to vouch for your mail. PHP mail sends anonymously from a web server that mailbox providers have no reason to trust, so it is far more likely to be junked.

5.2 A Real Sender Reputation

Proper mail servers, and especially dedicated sending services, work hard to keep a clean reputation with Gmail, Outlook, and the rest. When you send through them, you borrow that good reputation. A shared web server's IP address is often already on a blocklist because some other site on it sent spam.

5.3 It Matches Your SPF and DKIM

As section 7 explains, your domain publishes a list of servers allowed to send its mail. If you send through your real mail provider's SMTP, your mail comes from a server already on that approved list, and it can be cryptographically signed. PHP mail from a random web server usually fails these checks.

5.4 Clear Errors Instead of Silent Loss

When SMTP fails, it tells you why: "authentication failed", "connection refused". PHP mail almost always reports success even when the message vanishes later, because handing the message to the operating system is all it checks. SMTP gives you something to debug.

PHP mail asks "did I hand it over?" SMTP asks "did a real mail server accept it?" Only the second question matters for delivery.
Back to top

6. Using an External SMTP Provider: Google, Microsoft 365, and Others

The most reliable setup is to send through an external mail service you already trust. This section shows the typical settings for the common ones. Always check the provider's current documentation, because ports and security can change.

6.1 Google Workspace (Gmail)

FieldValue
Mailer smtp
SMTP Host smtp.gmail.com
SMTP Port 587
SMTP Security tls
SMTP Authentication Yes
SMTP Username Your full Google address
SMTP Password An App Password, not your normal login

Google no longer allows a plain account password for SMTP. You must turn on 2-step verification and generate an App Password, then use that 16-character code as the SMTP password.

6.2 Microsoft 365 (Outlook)

FieldValue
Mailer smtp
SMTP Host smtp.office365.com
SMTP Port 587
SMTP Security tls
SMTP Authentication Yes
SMTP Username Your full Microsoft 365 address
SMTP Password The mailbox password or an app password

Microsoft has been switching off basic username-and-password SMTP (SMTP AUTH) for security. On many tenants an administrator must explicitly enable SMTP AUTH for the mailbox, or you must use a dedicated sending service instead. If login keeps failing, this is usually why.

6.3 Transactional Mail Services

For busier sites, a service built only for sending, such as Brevo, Mailgun, Postmark, Amazon SES, or SendGrid, is often the best choice. They all offer SMTP details that drop straight into Joomla's fields, they handle reputation and authentication for you, and they show you logs of every message. A typical setup looks like:

Mailer            smtp
SMTP Host         (given by the service, e.g. smtp-relay.brevo.com)
SMTP Port         587
SMTP Security     tls
SMTP Auth         Yes
SMTP Username     (an API login the service gives you)
SMTP Password     (an API key, not your account password)

6.4 Ports and Security in Plain Words

PortSecurity settingNotes
587 tls (STARTTLS) The modern default. Use this first.
465 ssl Older but still widely supported.
25 none Often blocked by hosts; avoid for authenticated sending.

If 587 with tls does not connect, try 465 with ssl before assuming the login is wrong. Some hosts block one of these ports at the firewall.

Back to top

7. SPF, DKIM, DMARC, and DNS

You can configure Joomla perfectly and still land in spam. The reason lives outside Joomla, in your domain's DNS records. These three records tell the receiving mail server whether to trust mail that claims to come from your domain. They are the single biggest factor in deliverability.

7.1 A Quick Word on DNS

DNS (Domain Name System) is the phone book of the internet. It maps your domain name to addresses and also stores small text records about your domain. SPF, DKIM, and DMARC are all TXT records you add at wherever your domain's DNS is managed: your registrar, your hosting control panel, or a service like Cloudflare. They are not set in Joomla at all.

7.2 SPF: Who Is Allowed to Send

SPF (Sender Policy Framework) is a public list of the servers allowed to send mail for your domain. When mail arrives, the receiver checks whether it came from a server on that list. A simple SPF record looks like this:

Type:  TXT
Name:  @            (your domain root)
Value: v=spf1 include:_spf.google.com ~all

The include: part names the sending service (here Google). If you send through Microsoft 365 or Brevo, you use their include: value instead, taken from their documentation. The ending tells receivers what to do with any server not on the list: ~all is a soft fail ("accept but mark as suspicious"), while -all is a hard fail ("reject outright"). Start with ~all while you confirm every real sender is listed, then tighten to -all. Two cautions matter: a domain may have only one SPF record, and SPF allows at most ten DNS lookups, so chaining many include: values can break it. The Email Deliverability article covers both limits in detail.

7.3 DKIM: A Tamper-Proof Signature

DKIM (DomainKeys Identified Mail) adds a cryptographic signature to every message. Your sending service signs the mail with a private key, and you publish the matching public key in DNS. The receiver checks the signature to confirm the mail really came from your domain and was not changed on the way. You normally get the exact DKIM record to paste in from your mail provider's setup screen.

7.4 DMARC: The Policy That Ties It Together

DMARC (Domain-based Message Authentication, Reporting and Conformance) tells receivers what to do when SPF or DKIM fails, and where to send reports. A gentle starting record is:

Type:  TXT
Name:  _dmarc
Value: v=DMARC1; p=none; rua=mailto:This email address is being protected from spambots. You need JavaScript enabled to view it.

Start with p=none, which only monitors and reports without blocking anything. Once the reports show your real mail passes, tighten it to p=quarantine (send failures to spam) and later p=reject (refuse them). Moving too fast to reject can block your own legitimate mail, so step up gradually.

7.5 How They Work Together

SPF    → "Is this server allowed to send for the domain?"
DKIM   → "Is the signature valid and the message unchanged?"
DMARC  → "If SPF or DKIM fails, what should I do, and tell the owner."

This is exactly why section 4 insists on a From address at your own domain, and section 5 recommends SMTP through your real provider: only then does your mail come from an approved, signed source that passes all three checks.

Back to top

8. How Extensions Send Email: Joomla's Mailer vs Their Own

Here is a detail that catches out many site owners. Not every extension sends email the same way. Some reuse Joomla's central mail settings, and some keep their own. When mail from one extension works and another fails, this is usually why.

8.1 Extensions That Use Joomla's Mailer

Many extensions, including RSForm Pro, send their email through Joomla's own mail system. They call Joomla's mailer, which means they automatically use the Mailer, SMTP host, port, and login you set in Global Configuration. The benefit is simple: configure mail once in Joomla, and every such extension is fixed at the same time.

If a form built with RSForm Pro does not deliver, you do not look in the form. You fix the central mail settings in Global Configuration, send the test mail, and the form starts working too.

8.2 Extensions With Their Own Mail Configuration

Other extensions keep a completely separate mail setup. The clearest example is AcyMailing, a newsletter extension. Because it sends mail in bulk, it has its own configuration screen where you choose the sending method and SMTP details independently of Joomla.

This is on purpose. Bulk newsletter sending has different needs from the occasional system email: it often uses a separate sending service, its own throttling, and its own queue, so mixing it with your transactional mail would hurt both. AcyMailing therefore lets you point newsletters at one service and leave Joomla's system mail on another.

8.3 Why the Difference Matters

SituationWhere to fix it
Contact form / RSForm Pro mail fails Joomla Global Configuration (it uses Joomla's mailer)
System mail (registration, reset) fails Joomla Global Configuration
AcyMailing newsletter fails AcyMailing's own configuration screen
Everything fails at once Likely DNS / blocked SMTP port, affecting all senders

So before you debug, ask one question: does this extension use Joomla's mailer or its own? The answer tells you which screen to open. When you install any mail-sending extension, check its documentation for a separate mail configuration so a hidden second setup does not surprise you later.

Back to top

9. Under the Hood: The Mail API (Developer View)

For developers, Joomla wraps PHPMailer in a small, clean API. You almost never touch PHPMailer directly; you ask Joomla's factory for a mailer that already has the Global Configuration settings applied.

9.1 The Key Classes

ClassRole
Joomla\CMS\Mail\Mail The mailer object; builds and sends one message.
Joomla\CMS\Mail\MailerFactory Creates a mailer pre-loaded with site mail settings.
Joomla\CMS\Mail\MailTemplate Sends a stored, editable mail template (see the Mail Templates article).

9.2 Sending a Simple Message

The modern way is to get the mailer from the factory, so it inherits your SMTP settings automatically:

use Joomla\CMS\Factory;

$mailer = Factory::getContainer()
    ->get(\Joomla\CMS\Mail\MailerFactoryInterface::class)
    ->createMailer();

$mailer->addRecipient(This email address is being protected from spambots. You need JavaScript enabled to view it.', 'Anna');
$mailer->setSubject('Hello from Joomla');
$mailer->setBody('This message used the site mail settings.');

if ($mailer->Send() === true) {
    // delivered to the transport
}

Because the factory applies the Mailer, host, port, and login from configuration.php, your code does not hard-code any SMTP details. Change the Global Configuration once and every piece of code that uses the factory follows.

9.3 Where the Settings Come From

configuration.php  ($mailer, $smtphost, $smtpport, $smtpuser, ...)
  └─ MailerFactory reads these values
     └─ builds a configured PHPMailer instance
        └─ your $mailer->Send() hands the message over via the chosen transport

This is why a well-written extension (like RSForm Pro) "just works" once you fix Global Configuration: it builds its mailer through this same factory rather than inventing its own transport.

Back to top

10. Testing Email and the Web Services API

10.1 Testing in Layers

When mail misbehaves, test from the bottom up so you know which layer fails:

  1. Transport: use the Send Test Mail button in Global Configuration. If this fails, fix SMTP first; nothing else matters yet.
  2. System mail: trigger a password reset for a test account. This uses Joomla's own mailer and templates.
  3. Extension mail: submit a real contact form or RSForm Pro form.
  4. Deliverability: send to a Gmail and an Outlook address, then check the headers to see whether SPF, DKIM, and DMARC pass.

A few well-known tools make this layer concrete. Mail Tester gives you an address to send to and returns a spam score plus SPF, DKIM, and DMARC results. MXToolbox checks your DNS, MX, and blacklist status. Google Postmaster Tools reports your reputation with Gmail. For a one-off check, open a delivered message in Gmail, click "Show original", and read the authentication results.

10.2 Reading the Headers

Every email carries hidden headers that record its journey and its authentication result. The line to look for is Authentication-Results, which states plainly whether SPF, DKIM, and DMARC passed:

Authentication-Results: mx.example.com;
    spf=pass  dkim=pass  dmarc=pass

If one says fail, you know exactly where to look first. The Received lines, read from the bottom up, show every server the message passed through. Reading headers is the fastest way to diagnose a delivery problem; the companion Focus On article on Troubleshooting Joomla Email walks through them field by field, along with SMTP error codes.

10.3 Catching Mail in Development

On a local or staging site you do not want test emails reaching real people. A mail-catcher such as MailHog or Mailpit pretends to be an SMTP server, accepts everything, and shows it in a web interface. Point Joomla's SMTP host at the catcher (for example localhost on its port) and every message is trapped safely for inspection.

10.4 Web Services API

Joomla's mail settings are not exposed through the Web Services (REST) API. There is no endpoint under /api/index.php/v1/ to read or change the Mailer, SMTP host, or password. Mail configuration is treated as sensitive administrator-only data, edited in the backend or in configuration.php, never managed remotely. The API can of course trigger actions (like creating a user) that in turn cause Joomla to send mail using these settings, but it does not manage the settings themselves.

Back to top

11. Deliverability: Getting Into the Inbox

Email has no search engine ranking, but it has the same kind of battle: reaching the inbox instead of the spam folder. A correctly built message is wasted if it never arrives. The factors that decide this are, in order of impact:

  • SPF, DKIM, and DMARC: the DNS records from section 7. This is the biggest lever, and it lives outside Joomla.
  • Authenticated SMTP: send through a real, reputable mail server, not raw PHP mail.
  • Reverse DNS (PTR): the sending server's IP address should resolve back to a matching hostname. Your SMTP provider normally handles this, which is another reason to send through one.
  • A real From address at your own domain: never a free Gmail or Outlook address, and never a domain you do not control.
  • A matching Reply To: a real, monitored mailbox so replies do not vanish.
  • Honest, clean subjects and content: avoid all-caps, "FREE!!!", and link-only bodies that look like spam.
  • A plain-text part alongside HTML: strict filters like to see clean text too.

Notice how few of these live inside Joomla. You configure the transport in Joomla, but you win the inbox at the DNS and reputation level.

Back to top

12. Common Mistakes and Pitfalls

12.1 Relying on PHP Mail

Symptom: Some mail arrives, much of it lands in spam, and Gmail or Outlook users never see it.

Fix: Switch the Mailer from mail to smtp and send through a proper mail server, as in sections 5 and 6.

12.2 Spoofing the From Address

Symptom: You set From Email to This email address is being protected from spambots. You need JavaScript enabled to view it. and delivery is terrible.

Fix: Use a From address at your own domain that your SMTP and SPF cover. Sending "as" Gmail from a non-Google server fails authentication.

12.3 No SPF, DKIM, or DMARC

Symptom: Mail sends fine from the server's point of view but constantly lands in spam.

Fix: Add the DNS records from section 7. Without them, mailbox providers have no reason to trust your domain.

12.4 Wrong Port or Security Combination

Symptom: The test mail fails with a connection or timeout error.

Fix: Try 587 with tls first, then 465 with ssl. If both time out, your host may block outgoing SMTP; ask them or use a transactional service over an allowed port.

12.5 Using a Login Password Where an App Password Is Required

Symptom: Google or Microsoft 365 SMTP returns "authentication failed" with the correct password.

Fix: Generate an App Password (Google) or have an admin enable SMTP AUTH and use an app password (Microsoft 365). Plain account passwords are often refused.

12.6 Forgetting an Extension Has Its Own Mail Settings

Symptom: System mail works, contact forms work, but AcyMailing newsletters do not.

Fix: AcyMailing has its own mail configuration. Fix it there, not in Global Configuration. See section 8.

12.7 Send Mail Switched Off

Symptom: No email at all, no error, nothing in any log.

Fix: Check that Send Mail (mailonline) is set to Yes in Global Configuration. It is sometimes turned off on staging sites and never turned back on.

Back to top

13. Best Practices

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

  • Set the Mailer to smtp and send through a real, reputable mail server.
  • Use a From address at your own domain, never a free Gmail or Outlook address.
  • Add SPF, DKIM, and DMARC in DNS. They decide whether you reach the inbox.
  • Start DMARC at p=none, read the reports, then tighten gradually.
  • For Google and Microsoft 365, use an App Password or enable SMTP AUTH, not your login password.
  • For busy sites, use a transactional mail service built for sending.
  • Always click Send Test Mail after changing settings, and read the error if it fails.
  • Know which extensions use Joomla's mailer (like RSForm Pro) and which keep their own (like AcyMailing).
  • Keep configuration.php private; it holds your SMTP password in readable form.
  • Trap mail on staging with a catcher like MailHog or Mailpit so tests never reach real people.
Back to top

14. Quick Reference

SETTINGS PATH    System → Global Configuration → Server → Mail Settings
MASTER SWITCH    Send Mail (mailonline) = Yes
MAILER           mail (PHP) | sendmail | smtp   <- choose smtp
FROM EMAIL       an address at your own domain (mailfrom)
SMTP HOST        your provider's server (smtphost)
SMTP PORT        587 (tls) preferred, or 465 (ssl)
SMTP SECURITY    none | ssl | tls   (smtpsecure)
SMTP AUTH        Yes, with username + password
TEST             Send Test Mail button (top of the screen)
STORED IN        configuration.php  ($mailer, $smtphost, $smtppass, ...)

GOOGLE           smtp.gmail.com : 587 : tls : App Password
MICROSOFT 365    smtp.office365.com : 587 : tls : SMTP AUTH enabled
TRANSACTIONAL    Brevo / Mailgun / Postmark / SES / SendGrid (API key)

DNS (not in Joomla)
  SPF    TXT @       v=spf1 include:_spf.provider ~all
  DKIM   TXT (key)   signature, from your mail provider
  DMARC  TXT _dmarc  v=DMARC1; p=none; rua=mailto:you@domain

EXTENSIONS
  RSForm Pro    uses Joomla's mailer  -> fix in Global Configuration
  AcyMailing    own mail config       -> fix in AcyMailing

API CLASS        Joomla\CMS\Mail\Mail via MailerFactory
WEB SERVICES     mail settings NOT exposed via the REST API
Back to top

15. Summary

Email looks simple from the outside, but a message from your Joomla site passes through several independent systems before it reaches a person. Understanding that chain is what turns "my mail does not work" into a problem you can actually fix.

  • Email is sending and receiving, and a website only ever sends, over SMTP.
  • Webmail and email clients are for people reading mail; a site sends automatically with no mailbox.
  • The Mailer setting in Global Configuration chooses PHP mail, Sendmail, or SMTP. Choose SMTP.
  • SMTP through a real provider gives you authentication, reputation, and clear errors.
  • Google and Microsoft 365 need an App Password or enabled SMTP AUTH, not a plain login.
  • SPF, DKIM, and DMARC in DNS decide whether you reach the inbox, and they live outside Joomla.
  • Extensions differ: some, like RSForm Pro, use Joomla's mailer; others, like AcyMailing, keep their own.

The key mindset is the split between sending and delivering. Joomla sends the message; your transport and your DNS decide whether it arrives. Get both right and your site speaks to its users reliably, every time.

If your Joomla mail still lands in spam, fails for one extension but not another, or vanishes without a trace, it usually comes down to the transport and DNS layers described here. A careful look at the mailer settings, the SMTP provider, and the SPF, DKIM, and DMARC records almost always finds the cause, and getting them right once means you can finally stop worrying about whether your site's email arrives.

Back to top
Email 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

Why is Joomla not sending emails?

Joomla usually fails to send emails because of incorrect mail settings, SMTP authentication errors, firewall restrictions, or your hosting provider blocking PHP mail. Using SMTP with a trusted mail provider is the most reliable solution.

Should I use PHP Mail, Sendmail, or SMTP in Joomla?

SMTP is the recommended option for almost every Joomla website. It provides better security, higher delivery rates, and easier troubleshooting than PHP Mail or Sendmail.

How do I configure SMTP in Joomla?

Go to System → Global Configuration → Server → Mail Settings, select SMTP, and enter your SMTP host, port, encryption method, username, and password. Test the configuration before putting your website live.

Why do Joomla emails end up in spam?

Emails are often marked as spam when your domain lacks proper email authentication. Configure SPF, DKIM, and DMARC records, use a valid sender address on your domain, and send mail through a reputable SMTP server.

How can I test whether Joomla email is working?

Send a test email from Joomla after configuring your mail settings. If the message is not delivered, check the SMTP credentials, server logs, firewall rules, and your email provider's authentication requirements before changing Joomla itself.

What is the best email provider for Joomla?

Popular choices include Google Workspace, Microsoft 365, Amazon SES, Mailgun, Brevo, and SendGrid. The best option depends on your budget, email volume, and whether you need transactional emails, newsletters, or both. If you operate in Europe or process personal data of EU citizens, also consider privacy and GDPR compliance. Choose a provider that offers strong data protection, transparent data processing agreements (DPAs), and, where possible, stores or processes data within the EU to simplify GDPR compliance.