То, что происходит у тебя сейчас — полностью объясняется одной строкой в master.cf, и она прямо перед глазами:
#smtpd pass - - y - - smtpd
Эта строка закомментирована, а при включённом postscreen это означает:
❗ Postscreen НЕ может передать соединение в smtpd
❗ Входящие письма НЕ принимаются
❗ Google подключается, проходит postscreen, но smtpd НЕТ → разрыв
❗ Именно поэтому ты видишь:
warning: cannot connect to service private/smtpd: No such file or directory
Это 100% причина, почему входящие письма не доходят.
🎯 Что нужно сделать (точно и без вариантов)
1) В master.cf раскомментировать строку smtpd pass
Найди:
#smtpd pass - - y - - smtpd
И измени на:
smtpd pass - - y - - smtpd
2) Также нужно включить dnsblog и tlsproxy (они обязательны для postscreen)
Найди:
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
И раскомментируй:
dnsblog unix - - y - 0 dnsblog
tlsproxy unix - - y - 0 tlsproxy
📌 Почему это обязательно
Когда включён postscreen:
smtp inet n - y - 1 postscreen
Postfix должен иметь цепочку:
smtp → postscreen → smtpd
Но у тебя сейчас:
smtp → postscreen → (нет smtpd)
Поэтому:
- Google подключается
- проходит postscreen
- Postfix пытается вызвать private/smtpd
- но его нет
- соединение рвётся
- письмо НЕ принимается
🔧 После исправления
Перезапусти Postfix:
systemctl restart postfix@-.service
Проверь:
ss -tlnp | grep master
Должно быть:
- 25 (smtp)
- 587 (submission)
- 465 (smtps)
🧪 Проверка входящих
Отправь письмо на:
alex@svyx.net
И сразу:
journalctl -u postfix@-.service -n 50
Ты увидишь:
postfix/smtpd[...] connect from gmail...
postfix/cleanup[...]
postfix/qmgr[...]
postfix/local[...] delivered
🎉 Итог
Ты уже сделал 99% работы:
- порт 25 слушается
- Postfix работает
- master активен
- DNS идеален
Осталось включить smtpd для postscreen, и входящие письма начнут приходить.