Почтовые серверы Linux / почтовый сервер

Почтовый сервер: Письма принимаются, но не доставляются в почтовый ящик

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

SMTP-сервер подтверждает приём письма, но адресат не видит его в почтовом ящике. «250 OK» на этапе передачи не означает, что Dovecot записал сообщение в нужный Maildir/mbox; надо проследить локальную доставку по идентификатору.

В этой статье
  1. Симптомы и область применимости
  2. Причины и диагностические признаки
  3. Пошаговая диагностика и исправление
  4. Как убедиться, что проблема устранена
  5. Если проблема осталась

#Симптомы и область применимости

SMTP-сервер подтверждает приём письма, но адресат не видит его в почтовом ящике. «250 OK» на этапе передачи не означает, что Dovecot записал сообщение в нужный Maildir/mbox; надо проследить локальную доставку по идентификатору.

#Причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Ошибка транспортного механизма доставкиПисьмо принято MTA, но не записано в пользовательское хранилище.В журнале есть LDA/LMTP error после принятия SMTPПроверьте связку Postfix→Dovecot LMTP или локальный транспорт.
Переполнена квота или дискХранилище не может принять новую запись.В журналах quota exceeded, no space left on deviceПроверьте квоту ящика и свободное место.
Фильтр перенёс письмоSieve, переадресация или правило клиента сработало после SMTP-приёма.Письмо видно в «Спам» или иной папкеПроверьте правила и конечный почтовый ящик.

#Пошаговая диагностика и исправление

  1. 1. Сделайте одно диагностическое письмоОтправьте сообщение с уникальной темой и временем с другого собственного ящика. Проверьте все папки в веб-почте, не ограничиваясь приложением на телефоне. Если письмо найдено в другой папке, диагностика должна касаться фильтров, а не сети.
  1. 2. Найдите цепочку по ID в журнале PostfixНа Linux-сервере посмотрите журнал за минуту приёма и найдите queue ID, получателя и итоговые строки status=sent/deferred/bounced. При LMTP status=sent может означать успешную передачу в Dovecot, но проверку расположения письма продолжайте в хранилище.
  2. Только чтение
    Linux · Терминал (Bash)КомандаНужен sudo
    Только чтение. На некоторых системах используйте /var/log/mail.log вместо journalctl.
    sudo journalctl -u postfix --since "30 minutes ago" --no-pager
  1. 3. Проверьте, какой транспорт обслуживает доменПосмотрите в Postfix виртуальные домены, transport_maps и доставку через LMTP или локальный агент. Не меняйте mydestination/virtual_mailbox_domains наугад: это может привести к ретрансляции наружу вместо локальной доставки.
  2. Только чтение; не публикуйте конфигурацию вместе с секретами
    Linux · Терминал (Bash)КомандаНужен sudo
    Только чтение; не публикуйте конфигурацию вместе с секретами.
    sudo postconf -n | grep -E "(virtual_|transport_|mailbox_transport|local_transport)"
  1. 4. Проверьте квоту конкретного ящикаПри использовании Dovecot с модулем quota запросите состояние только нужного пользователя. Обратите внимание на сообщения о превышении лимита в журнале доставки. Если лимит исчерпан, согласуйте освобождение места с владельцем, не удаляйте чужую почту самостоятельно.
  2. Dovecot и настроенный quota plugin; замените адрес
    Linux · Терминал (Bash)КомандаНужен sudo
    Dovecot и настроенный quota plugin; замените адрес. При отсутствии модуля команда может не показать квоту.
    sudo doveadm quota get -u user@example.com
  1. 5. Проверьте место и индексы файловой системыНа сервере прочитайте использование раздела, где расположено почтовое хранилище, и количество свободных inode. Сравните с пользовательской квотой. Если раздел полон, освободите безопасные служебные временные файлы по регламенту, не удаляйте Maildir и письма ради освобождения места.
  2. Linux, чтение
    Linux · Терминал (Bash)Команда
    Linux, чтение. Для конкретного раздела укажите путь хранилища после уточнения конфигурации.
    df -h && df -i
  1. 6. Найдите почтовые правила и путь доставкиВ административной панели почты или настройках Sieve посмотрите переадресации, фильтры «в спам», автоматическую сортировку и псевдонимы. Проверьте, не направляется ли письмо на несуществующий локальный адрес или во внешнюю систему. Изменения проверяйте на одном тестовом отправителе.
  1. 7. Сверьте папки на сервере через DovecotПолучите имена папок и число писем в INBOX для тестового пользователя. Если ожидаемое письмо записано, но не отображается в клиенте, проверьте подписку и синхронизацию IMAP вместо повторной пересылки.
  2. Только метаданные, замените адрес
    Linux · Терминал (Bash)КомандаНужен sudo
    Только метаданные, замените адрес. Команда доступна при установленном Dovecot.
    sudo doveadm mailbox status -u user@example.com messages unseen INBOX
  1. 8. Исправьте только установленную причину и повторите тестЕсли LMTP недоступен, восстановите его по журналу и проверьте конфигурацию перед перезапуском. Если квота исчерпана — согласуйте её увеличение; если фильтр ошибается — отключите только это правило. После каждого изменения отправляйте одно контрольное письмо и сверяйте ID.

#Как убедиться, что проблема устранена

Новое контрольное сообщение принято SMTP, доставлено конечным локальным транспортом и отображается в правильной папке веб-почты и IMAP-клиента; журнал не содержит deferred или ошибок квоты.

#Если проблема осталась

Если SMTP отвечает успехом, а ни один локальный журнал не показывает попытку доставки, проверьте, не принимает ли письмо другой MX или внешний фильтрующий шлюз. Сопоставьте полную цепочку Received и серверные ID.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.