#Почему письма не уходят
phpBB отправляет письма (регистрация, сброс пароля, уведомления) через функцию PHP mail() или через SMTP. На многих хостингах mail() отключена или письма попадают в спам из-за отсутствия SPF/DKIM. Дополнительно возможны: выключена функция почты в настройках, неверный адрес отправителя, блокировка порта 25 хостингом, неправильные данные SMTP, ошибки в очереди (cache/queue.php) или неработающий cron.
#Возможные причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Отправка отключенаГалочка выключена. | Никакие письма не уходят. | Включите в настройках. |
| mail() недоступнаХостинг блокирует. | Нет ошибок, нет писем. | Перейдите на SMTP. |
| Неверные данные SMTPПароль, порт. | Ошибка в журнале. | Проверьте данные, используйте пароль приложения. |
| Порт закрытБлокирует хостинг. | nc не подключается. | Другой порт (587/465). |
| Нет SPF/DKIMПисьма в спам. | Доходят в папку «Спам». | Добавьте записи в DNS. |
| Адрес отправителя чужой доменОтправитель не совпадает. | Отклонение по DMARC. | Используйте адрес своего домена. |
#Порядок
- Откройте параметры электронной почты phpBBВ администраторском разделе phpBB зайдите «Общие → Настройки конференции → Настройки электронной почты» (путь и подписи могут отличаться по языку). Проверьте, что отправка писем разрешена и задан рабочий метод доставки. Если сообщение не уходит, сохраните текст ошибки, но не публикуйте пароль SMTP.
- Укажите адрес отправителя и адрес для связи, существующие на вашем доменеВ той же форме проверьте адрес отправителя и адрес для связи, чтобы они принадлежали реально настроенному домену, с которого разрешена отправка. Не указывайте в From адрес чужой компании: письма могут не пройти SPF/DMARC. Сохраните настройки и проверьте, что новые сообщения имеют нужный From.
- Укажите адрес SMTP-сервера, порт и режим шифрованияПри использовании SMTP укажите официальный сервер провайдера, порт и правильный режим: 587 + STARTTLS либо 465 + TLS согласно документации, а также полное имя пользователя и пароль приложения, если он нужен. Не подставляйте
smtp.yandex.ruи фиктивный адресnoreply@example.ru, если используется другой провайдер. - Используйте тестовую отправкуПосле сохранения отправьте письмо через штатное действие форума (например, тестовую регистрацию или восстановление пароля тестового пользователя). Проверьте и входящие, и «Спам», и серверный журнал. Если сообщение из phpBB подтверждает только постановку в очередь, это ещё не подтверждение доставки.
- Проверьте журнал ошибок отправки phpBBВ ACP откройте «Обслуживание → Журнал ошибок» и найдите записи в момент теста. Если ошибка содержит
535, проверяйте SMTP-авторизацию; приConnection timed out— сеть; при550— адрес/политику получателя. Сопоставьте с журналом почтового сервера, если им управляете. - Проверьте, не отклонил ли сервер порт: подключитесь к SMTP черезНа самом сервере с терминалом проверьте доступность выбранного порта (
nc -vz адрес_SMTP 587либо465); для 587 отдельно проверьте TLS командойopenssl s_client -starttls smtp -connect адрес_SMTP:587. Не выводите пароль в командную строку. Если соединение блокируется хостингом, запросите разрешённый submission-порт. - Проверьте SPF, DKIM и папку «Спам» получателяУ DNS-провайдера домена проверьте SPF, DKIM, DMARC: включайте SPF/DKIM согласно почтовому сервису, затем отправьте письмо на контрольный ящик и посмотрите
Authentication-Resultsв полных заголовках. SPF проверяется по реальному отправителю, а не просто по наличию TXT; не создавайте второй SPF для того же имени. - Проверьте очередь писем и cronПроверьте очередь писем phpBB и планировщик задач, если ваша версия/конфигурация использует их для фоновой отправки. Убедитесь, что задачи форума действительно запускаются, нет ошибок записи в cache/ и что после теста очередь сокращается. Не удаляйте файлы очереди вручную без копии.
- Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Проверка очереди и cron
phpBB может использовать очередь, обрабатываемую при посещении страниц. Если форум посещают редко, письма задерживаются. Настройте системный cron: */5 * * * * php /var/www/forum/bin/phpbbcli.php cron:run. Проверьте журнал: если там записаны ошибки соединения, проблема в SMTP.