Документация / Joomla

Отправка почты в Joomla через SMTP

Поддержка SMTP в Joomla встроена — расширения не нужны. Переключение почтовика с PHP Mail на SMTP решает сразу обе типичные проблемы: отсутствие локального sendmail и неавторизованную отправку, которая не проходит проверки SPF и DKIM у получателя.

Логин и пароль можно получить на странице управления токенами домена.

Параметры подключения

ПараметрЗначение
SMTP-хостsmtp.fmailer.ru
Порт587
ШифрованиеSTARTTLS (соединение переводится в TLS до авторизации)
ЛогинЛогин SMTP-токена вашего домена
ПарольПароль этого токена — показывается один раз, при создании
Каждый режим доступен и на высоком порту: 8465 (SSL/TLS), 8587 (STARTTLS) и 8025 (без шифрования). Многие хостинги и облака блокируют исходящие 25, 465 и 587 — если соединение отваливается по таймауту, используйте соответствующий высокий порт

Настройка

Перейдите в Система → Общие настройки → Сервер и прокрутите до блока «Настройки почты»:

ПолеЗначение
Отправка почтыДа
E-mail отправителяnoreply@mail.example.ru — на подтверждённом домене
Имя отправителяНазвание сайта
ПочтовикSMTP
SMTP-хостsmtp.fmailer.ru
SMTP-порт587
Безопасность SMTPSTARTTLS
Авторизация SMTPДа
Логин SMTPЛогин SMTP-токена вашего домена
Пароль SMTPПароль этого токена
STARTTLS идёт с портом 587, SSL/TLS — с портом 465. Любое другое сочетание обрывает рукопожатие, и Joomla показывает это как общую ошибку соединения.

Те же настройки, если удобнее править файл напрямую:

configuration.phpphp
<?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 отправителя не на подтверждённом домене.

Частые вопросы

Где в Joomla настраивается SMTP?

Система → Общие настройки → вкладка «Сервер» → блок «Настройки почты». Выберите в поле «Почтовик» значение SMTP, и ниже появятся поля хоста, порта, шифрования, логина и пароля. Те же значения хранятся в файле configuration.php в корне сайта.

Что выбрать в поле безопасности — SSL/TLS или STARTTLS?

В Joomla 4 и 5 это отдельные пункты: STARTTLS используется с портом 587, SSL/TLS — с портом 465. В Joomla 3 те же варианты назывались tls и ssl. Неверная пара порт — шифрование и есть обычная причина, по которой тестовое письмо не уходит с ошибкой соединения.

Что означает ошибка «Could not instantiate mail function»?

Это ошибка почтовика PHP mail(), а не SMTP: значит в поле «Почтовик» всё ещё стоит «PHP Mail». Переключите его на SMTP. Если ошибка осталась после переключения, настройки не сохранились — чаще всего потому, что файл configuration.php недоступен для записи.

Почему письма из Joomla попадают в спам?

Проверьте поле «E-mail отправителя» в настройках почты. При установке туда попадает адрес, указанный администратором, и он часто оказывается на другом домене, чем сайт. Укажите адрес на подтверждённом домене, чтобы DKIM и SPF сходились.

Как проверить отправку почты в Joomla?

В блоке настроек почты есть кнопка «Отправить тестовое письмо»: оно уходит на адрес отправителя, а при ошибке Joomla показывает ответ SMTP-сервера дословно. Это гораздо информативнее общего предупреждения, которое видят посетители сайта.

Почему подключение отваливается по таймауту?

Многие хостинги блокируют исходящие порты 25, 465 и 587. Укажите порт 8587 вместе со STARTTLS или 8465 вместе с SSL/TLS.

Что дальше