Поддержка SMTP в Joomla встроена — расширения не нужны. Переключение почтовика с PHP Mail на SMTP решает сразу обе типичные проблемы: отсутствие локального sendmail и неавторизованную отправку, которая не проходит проверки SPF и DKIM у получателя.
| Параметр | Значение |
|---|---|
| SMTP-хост | smtp.fmailer.ru |
| Порт | 587 |
| Шифрование | STARTTLS (соединение переводится в TLS до авторизации) |
| Логин | Логин SMTP-токена вашего домена |
| Пароль | Пароль этого токена — показывается один раз, при создании |
Перейдите в Система → Общие настройки → Сервер и прокрутите до блока «Настройки почты»:
| Поле | Значение |
|---|---|
| Отправка почты | Да |
| E-mail отправителя | noreply@mail.example.ru — на подтверждённом домене |
| Имя отправителя | Название сайта |
| Почтовик | SMTP |
| SMTP-хост | smtp.fmailer.ru |
| SMTP-порт | 587 |
| Безопасность SMTP | STARTTLS |
| Авторизация SMTP | Да |
| Логин SMTP | Логин SMTP-токена вашего домена |
| Пароль SMTP | Пароль этого токена |
587, SSL/TLS — с портом 465. Любое другое сочетание обрывает рукопожатие, и Joomla показывает это как общую ошибку соединения. Те же настройки, если удобнее править файл напрямую:
<?php
// configuration.php — те же настройки, если удобнее править файл
public $mailer = 'smtp';
public $mailfrom = 'noreply@mail.example.ru';
public $fromname = 'Магазин';
public $smtpauth = '1';
public $smtpuser = '<логин токена>';
public $smtppass = '<пароль токена>';
public $smtphost = 'smtp.fmailer.ru';
public $smtpsecure = 'tls'; // 'tls' = STARTTLS, 'ssl' = шифрование сразу
public $smtpport = '587';В том же блоке нажмите «Отправить тестовое письмо». При ошибке Joomla выводит ответ SMTP-сервера дословно — по нему сразу видно, дело в порте, в шифровании или в доступах.
| Ошибка | Причина и решение |
|---|---|
Could not instantiate mail function | Почтовик всё ещё «PHP Mail». Переключите на SMTP. |
SMTP connect() failed | Заблокирован порт — используйте 8587 или 8465 — либо неверное шифрование. |
SMTP Error: Could not authenticate | Неверные доступы либо авторизация SMTP выключена. |
| Настройки сбрасываются после сохранения | configuration.php недоступен для записи. |
| Тест проходит, форма обратной связи — нет | Контакт переопределяет отправителя — проверьте настройки пункта меню. |
| Письма в спаме | E-mail отправителя не на подтверждённом домене. |
Система → Общие настройки → вкладка «Сервер» → блок «Настройки почты». Выберите в поле «Почтовик» значение SMTP, и ниже появятся поля хоста, порта, шифрования, логина и пароля. Те же значения хранятся в файле configuration.php в корне сайта.
В Joomla 4 и 5 это отдельные пункты: STARTTLS используется с портом 587, SSL/TLS — с портом 465. В Joomla 3 те же варианты назывались tls и ssl. Неверная пара порт — шифрование и есть обычная причина, по которой тестовое письмо не уходит с ошибкой соединения.
Это ошибка почтовика PHP mail(), а не SMTP: значит в поле «Почтовик» всё ещё стоит «PHP Mail». Переключите его на SMTP. Если ошибка осталась после переключения, настройки не сохранились — чаще всего потому, что файл configuration.php недоступен для записи.
Проверьте поле «E-mail отправителя» в настройках почты. При установке туда попадает адрес, указанный администратором, и он часто оказывается на другом домене, чем сайт. Укажите адрес на подтверждённом домене, чтобы DKIM и SPF сходились.
В блоке настроек почты есть кнопка «Отправить тестовое письмо»: оно уходит на адрес отправителя, а при ошибке Joomla показывает ответ SMTP-сервера дословно. Это гораздо информативнее общего предупреждения, которое видят посетители сайта.
Многие хостинги блокируют исходящие порты 25, 465 и 587. Укажите порт 8587 вместе со STARTTLS или 8465 вместе с SSL/TLS.