Настройка Sendmail для отправки почты без попадания в Спам

Поднимать Sendmail на веб-сервере «чтобы письма не были спамом» не стоит. Для нового контура — Postfix как null-client или внешний SMTP, плюс SPF/DKIM/DMARC на домене.
1. Null-client Postfix (письмо уходит на реле)
sudo apt install -y postfix
# тип: Satellite / null client, relayhost = [smtp.example.com]:587
В /etc/postfix/main.cf смысл такой (имена сверьте с Standard configuration):
mydestination =
relayhost = [smtp.example.com]:587
inet_interfaces = loopback-only
inet_interfaces = loopback-only — чтобы сервер не стал открытым релеем. Учётка SMTP — в sasl_passwd, права 600, не в git.
sudo postfix check
sudo systemctl reload postfix
echo test | mail -s test you@example.com
sudo tail /var/log/mail.log
Ожидание: письмо ушло на relay, в логе нет relay access denied с улицы.
2. Почему письма всё равно могут быть спамом
На домене нужны SPF, DKIM и DMARC у регистратора DNS. Sendmail с «правильным» rewrite заголовка это не заменяет. Не отправляйте почту сайта напрямую в мир с динамического IP.
DNS-записи, без которых письма попадают в спам
Почтовые провайдеры проверяют, имеет ли отправитель право писать от имени домена. Добавьте записи у регистратора DNS:
| Запись | Пример | Для чего |
|---|---|---|
| SPF (TXT) | v=spf1 ip4:203.0.113.10 include:_spf.example.com -all |
Перечень серверов, которым разрешена отправка |
| DKIM (TXT) | selector._domainkey с открытым ключом |
Подпись писем, подтверждающая, что их не изменили |
| DMARC (TXT) | _dmarc: v=DMARC1; p=none; rua=mailto:dmarc@example.com |
Что делать с письмами, не прошедшими проверку, и куда слать отчёты |
| PTR | Обратная запись IP на имя сервера | Проверка «имя сервера соответствует адресу» |
Начинайте DMARC с p=none, смотрите отчёты и только потом ужесточайте до quarantine и reject. Проверка записей:
dig +short TXT example.com
dig +short TXT _dmarc.example.com
dig +short -x 203.0.113.10
Подпись DKIM на сервере
Для подписи писем на самом сервере используют OpenDKIM как milter Postfix. Если почту отправляет внешний сервис (реле), подпись настраивают у него, а у вас в DNS остаются записи, которые он укажет. Ключи DKIM — секрет: права 600.
Очередь и диагностика
postqueue -p # очередь
sudo tail -f /var/log/mail.log
sudo postsuper -d ALL deferred # очистить отложенные (необратимо)
Прежде чем чистить очередь, посмотрите, что в ней: спам от взломанного сайта или легитимные письма. Рост очереди — признак того, что сервер используют для рассылки: проверьте сайт и учётные записи. Репутацию IP смотрите в публичных списках блокировок.
Как проверить
postconf inet_interfaces relayhost
ss -lntup | grep ':25'
25 слушает только localhost. Тестовое письмо дошло. На 25/tcp с интернета коннект не принимают.
Источники
- Postfix standard configuration. URL: https://www.postfix.org/STANDARD_CONFIGURATION_README.html.


















