
Email in Joomla
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 , 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 top2. 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.
| Tool | Who uses it | What 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 top3. 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 value | How it sends | Reliability |
|---|---|---|
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.
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
| Setting | Config key | What 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 . Never set it to a free address like . 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 top5. 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)
| Field | Value |
|---|---|
| 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)
| Field | Value |
|---|---|
| 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
| Port | Security setting | Notes |
|---|---|---|
| 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.
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 top8. 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
| Situation | Where 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 top9. 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
| Class | Role |
|---|---|
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 top10. 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:
- Transport: use the Send Test Mail button in Global Configuration. If this fails, fix SMTP first; nothing else matters yet.
- System mail: trigger a password reset for a test account. This uses Joomla's own mailer and templates.
- Extension mail: submit a real contact form or RSForm Pro form.
- 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.
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 top12. 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 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.
13. Best Practices
If you remember only a few things from this article, remember these:
- Set the Mailer to
smtpand 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.phpprivate; 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.
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 top15. 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

Peter is a Joomla specialist and a Linux admin for fast, secure and scalable websites.
Frequently Asked Questions
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.
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.
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.
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.
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.
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.


