Joomla on LiteSpeed: CSS and JavaScript 403 errors with query strings Joomla 3 to Joomla 6 with T3 and Purity III: a migration case study Website hacked? What to do first and mistakes to avoid How to import Excel into WordPress with a custom plugin ChatGPT Ads: Paid Advertising Is Challenging Google Ads Ecommerce localization in Italy: catalogue, checkout and technical support Italian web developer for website support and local coordination Italian website localization: more than translating web content Taking over an existing Italian website without rebuilding it Website localization in Italy: a technical guide for international companies WordPress Dashboard Won't Load: 8 Causes and How to Fix Them WordPress Not Working: What to Check Before Panicking WordPress Site Stuck After Update: How to Recover It WP-Admin Error 500: Common Causes and Effective Solutions How to Identify Which WordPress Plugin Is Really Slowing Down Your Site Without Guesswork Joomla on LiteSpeed: CSS and JavaScript 403 errors with query strings Joomla 3 to Joomla 6 with T3 and Purity III: a migration case study Website hacked? What to do first and mistakes to avoid How to import Excel into WordPress with a custom plugin ChatGPT Ads: Paid Advertising Is Challenging Google Ads Ecommerce localization in Italy: catalogue, checkout and technical support Italian web developer for website support and local coordination Italian website localization: more than translating web content Taking over an existing Italian website without rebuilding it Website localization in Italy: a technical guide for international companies WordPress Dashboard Won't Load: 8 Causes and How to Fix Them WordPress Not Working: What to Check Before Panicking WordPress Site Stuck After Update: How to Recover It WP-Admin Error 500: Common Causes and Effective Solutions How to Identify Which WordPress Plugin Is Really Slowing Down Your Site Without Guesswork

Joomla 3 email failures: diagnose PHPMailer and SMTP

Author Graziano De Maio - Gdmtech
I wish you a good read and remember: if after reading this article you need help, don't hesitate to contact me.
Author: Graziano De Maio | Founder of Gdmtech
Table of contents

When Joomla 3 fails to send email, locate the failed stage: notification generation, connection to the mail service, authentication or delivery. An error mentioning PHPMailer identifies part of the sending process; it does not establish that the library itself is faulty.

This guide concerns existing installations. Joomla 3 is unsupported. Restoring notifications addresses one function, while maintaining the site also requires a route to a supported platform.

Compare a system test with the missing notification

In Global Configuration, inspect the mail settings under the Server tab for the installed release: sending enabled, selected method, sender and transport parameters. Where the release provides a test-message function, use a mailbox you control and preserve the full result.

Then perform the failing application action: contact submission, registration or a component notification. Extensions may have their own settings, which a global test does not necessarily exercise.

ResultNext investigation
System test and notifications both failShared settings and service connection
System test works but one form failsForm recipient, conditions and transport
Submission accepted but no message receivedProvider events and recipient mailbox
Failure only with attachmentsFile accessibility, size and service limits

For a hypothetical component that sends only after registration confirmation, establish that the required event occurs. Changing an SMTP port will not alter that notification rule.

Establish the transport actually being used

Separate SMTP from PHP mail and any other method offered by the installed configuration. Saved SMTP credentials may not participate in the request when another transport is selected.

For SMTP, compare the host, port, encryption, authentication and account with the provider’s instructions. Do not infer settings from a webmail address. If the service has changed authentication requirements, verify support in the available integration rather than assuming an old configuration can use any current service.

Use an authorised sender. A visitor’s address can be used for replies without making it the site’s authenticated sending identity. Check what the specific form component supports before changing its behaviour.

Match the PHPMailer error to a focused test

The PHPMailer troubleshooting guide distinguishes connection, authentication and TLS failures. Preserve the full error rather than only the generic statement that sending failed.

Failure stageFocused check
Connection refused or timed outOutbound access, host, port and service availability
Authentication rejectedCredential and permitted authentication method
Certificate or TLS negotiation errorServer name, certificates and environment libraries
Sender rejectedSending-address authorisation
Quota exceededAccount limits and sending activity

Ask the host to test from the machine running Joomla. A successful connection from your own computer does not establish that the web server can reach the same port. Resolve TLS configuration or environment problems instead of disabling certificate checks to suppress the symptom.

Collect logs without exposing SMTP conversations

Record the action, timestamp and controlled recipient, then correlate Joomla, PHP and mail-provider logs. Check the configured log path and debug-plugin settings rather than assuming a universal log filename.

In the Joomla 3.10.12 Mail implementation, SMTP debugging depends on JDEBUG and forwards messages to the mail logging category. Verify that behaviour against the installed release and logging configuration.

Investigate on a protected copy, allowing only the controlled test messages required. Keep detailed debugging out of public pages. Remove credentials, tokens, unnecessary addresses and message contents before sharing extracts, and restore normal settings afterwards.

This also makes the evidence easier to interpret: one known action should correspond to one identifiable attempt rather than an unexplained collection of mail errors.

Trace accepted messages that never reach the inbox

Find the attempt in the provider dashboard and retain its identifier where available. Distinguish initial acceptance from queueing, deferral and rejection. Check spam and mailbox rules at the controlled destination.

Review SPF, DKIM and DMARC against the sending service’s requirements, including sender-domain alignment. The official Gmail sender guidelines explain these checks for Gmail delivery. Correct authentication alone does not guarantee inbox placement.

Avoid bulk resending until you know whether earlier attempts remain queued. Before changing DNS, account for other services authorised to send for the same domain.

Repair the integration and test the complete workflow

Do not manually replace Joomla’s bundled PHPMailer with an independently selected newer version. APIs and dependencies need to remain consistent with the CMS and extensions. For environment failures, use the Joomla 3 PHP and database investigation as well.

After the correction, repeat both the system test and the actual notification. Check sender, reply address, links and expected attachments. Confirm one send event and receipt of the expected message, rather than relying solely on a success banner.

If Joomla notifications remain blocked, I can review the sending path and logs to distinguish component behaviour from transport or mail-service restrictions.

Author Graziano De Maio - Gdmtech
I wish you a good read and remember: if after reading this article you need help, don't hesitate to contact me.
Author: Graziano De Maio | Founder of Gdmtech