Craft отправляет активацию аккаунтов, восстановление пароля и всё, что отправляют ваши шаблоны и плагины, через один почтовый компонент, а он по умолчанию использует sendmail сервера. SMTP встроен — плагин не нужен, а переключение на fmailer занимает один экран настроек.
| Параметр | Значение |
|---|---|
| SMTP-хост | smtp.fmailer.ru |
| Порт | 587 |
| Шифрование | STARTTLS (соединение переводится в TLS до авторизации) |
| Логин | Логин токена вашего домена |
| Пароль | Пароль этого токена — показывается один раз, при создании |
Настройки почты хранятся в project config, который обычно лежит в репозитории. Значения держите в .env, а в панели ссылайтесь на них:
SYSTEM_EMAIL=noreply@mail.example.ru
SMTP_HOST=smtp.fmailer.ru
SMTP_PORT=587
SMTP_USERNAME=<логин токена>
SMTP_PASSWORD=<пароль токена>В панели управления откройте Settings → Email и заполните поля:
| Поле | Значение |
|---|---|
| System Email Address | $SYSTEM_EMAIL — адрес на подтверждённом домене |
| Sender Name | Название сайта |
| Transport Type | SMTP |
| Hostname | $SMTP_HOST |
| Port | $SMTP_PORT (587) |
| Use authentication | Включено |
| Username | $SMTP_USERNAME |
| Password | $SMTP_PASSWORD |
465 шифрование с первого байта, на любом другом — STARTTLS. С портом 587 пароль никогда не уходит открытым текстом. Чтобы вообще убрать почту из панели управления или задать разный транспорт для разных окружений, переопределите компонент mailer:
<?php
// config/app.php — перекрывает настройки SMTP из панели управления
use craft\helpers\App;
use craft\helpers\MailerHelper;
use craft\mail\transportadapters\Smtp;
return [
'components' => [
'mailer' => function() {
$config = App::mailerConfig();
$adapter = MailerHelper::createTransportAdapter(Smtp::class, [
'host' => App::env('SMTP_HOST'),
'port' => App::env('SMTP_PORT'),
'useAuthentication' => true,
'username' => App::env('SMTP_USERNAME'),
'password' => App::env('SMTP_PASSWORD'),
]);
$config['transport'] = $adapter->defineTransport();
return Craft::createObject($config);
},
],
];Нажмите Test внизу страницы Settings → Email или выполните ту же проверку из консоли — она выводит ошибку SMTP целиком:
php craft mailer/test --to=you@example.ru На тестовом стенде общая настройка testToEmailAddress отправляет все письма на один адрес, чтобы не писать реальным пользователям.
| Ошибка | Причина и решение |
|---|---|
Connection could not be established with host | Порт заблокирован или неверный хост. Попробуйте порт 8587. |
Таймаут на порту 8465 | Craft шифрует с первого байта только на порту 465. Используйте 8587. |
Failed to authenticate on SMTP server | Неверный логин или пароль токена. |
| Сервер требует авторизацию | Выключен Use authentication. |
| Локально работает, после деплоя — нет | На сервере в .env нет переменных $SMTP_*. |
| Письма в спаме | System Email Address не на подтверждённом домене. |
В панели управления: Settings → Email (/admin/settings/email). Выберите SMTP в поле Transport Type — появятся поля Hostname, Port, Use authentication, Username и Password. Значения сохраняются в project config и переезжают вместе с деплоем.
Нигде: в Craft 5 такой настройки нет, а в Craft 4 её убрали в версии 4.3.7. На порту 465 шифрование включается с первого байта, на любом другом соединение поднимается через STARTTLS, если сервер его предлагает. Указывайте 587 и не ищите пропавшее поле.
Впишите в поле Password не сам пароль, а ссылку на переменную окружения — $SMTP_PASSWORD, а переменную определите в .env. В project config тогда попадает только ссылка, и её безопасно коммитить.
Нажмите Test внизу страницы Settings → Email или выполните php craft mailer/test --to=you@example.ru. Консольная команда использует сохранённые настройки и выводит ошибку целиком — это выручает, когда панель показывает только короткое сообщение.
Транспорт SMTP в Craft шифрует соединение с первого байта, только если порт ровно 465; на любом другом он начинает открытым текстом и ждёт STARTTLS. Если хостинг блокирует 587, используйте 8587 — он работает так же, как 587.
Проверьте System Email Address в Settings → Email. Это адрес отправителя для всего, что отправляет Craft, включая активацию аккаунта и восстановление пароля, и он должен быть на подтверждённом домене, чтобы DKIM, SPF и DMARC сходились.