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

0
14835
Обложка статьи: Настройка 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 с интернета коннект не принимают.

Источники

Комментарии закрыты.