Прежде чем поднимать свой почтовый сервер
Большинству людей свой почтовый сервер не стоит поднимать. Установить его легко, а вот добиться, чтобы письма попадали во входящие, трудно. Прежде чем начать, нужно знать о четырёх вещах: открыт ли исходящий порт 25, какая PTR-запись (обратный DNS) у вашего IP-адреса, какие у вас записи SPF, DKIM и DMARC и какова репутация вашего IP-адреса.
Крупные почтовые сервисы не доверяют письмам с незнакомого сервера. Даже правильно настроенный новый сервер может попасть в спам просто потому, что у него нет истории. К тому же сервер должен работать без перерывов, получать обновления и находиться под наблюдением на предмет злоупотреблений.
Когда это имеет смысл?
Свой сервер имеет смысл для обучения, для нескольких ящиков на паре доменов или когда вы хотите держать данные у себя. Он не имеет смысла, если от почты зависит ваш бизнес, если вы планируете массовые рассылки вроде новостных или у вас нет времени следить за сервером. Бэкапы ящиков тоже придётся делать самим, потому что входящая почта лежит на диске сервера.
Порт 25
- Почтовые серверы доставляют друг другу почту через порт 25. Чтобы получать почту, порт должен быть открыт для входящих соединений. Чтобы отправлять — для исходящих.
- Многие сети и провайдеры ограничивают исходящий порт 25, чтобы предотвратить злоупотребления. В Seturack на новых серверах он тоже сначала закрыт, а открыть его из панели можно одним щелчком.
- Почтовые клиенты, например на телефонах и Thunderbird, используют порты подачи 587 или 465. Эти порты нельзя использовать для доставки между серверами.
Исходящий порт 25 можно проверить на своём сервере так. Если в выводе «25 open», соединение устанавливается:
timeout 5 bash -c 'exec 3<>/dev/tcp/gmail-smtp-in.l.google.com/25' && echo "25 open" || echo "25 closed"
Массовая рассылка писем людям, которые их не просили, и создание для этого инфраструктуры нарушают условия обслуживания Seturack.
PTR, SPF, DKIM и DMARC
По этим записям получатели проверяют, что письмо действительно от вас. Все они хранятся в DNS. Большинство вы задаёте там, где управляете доменом, а PTR-запись определяет владелец IP-адреса. Прежде чем заказывать, выясните, позволяет ли ваш провайдер задать PTR-запись для вашего сервера. Если dig нет, установите его командой sudo apt install -y dnsutils.
| Запись | Для чего нужен | Команда для проверки |
|---|---|---|
| PTR (обратный DNS) | Превращает IP-адрес в имя. Многие получатели ждут, что это имя разрешается обратно в тот же IP. | dig -x 203.0.113.5 +short |
| MX | Сообщает отправителям, какой сервер принимает почту для вашего домена. | dig +short MX example.com |
| SPF | Перечисляет IP-адреса, которым разрешено отправлять почту от имени вашего домена. | dig +short TXT example.com |
| DKIM | Подписывает исходящую почту. Открытый ключ лежит в DNS. | dig +short TXT selector._domainkey.example.com |
| DMARC | Сообщает получателям, что делать, если проверка SPF или DKIM не прошла. | dig +short TXT _dmarc.example.com |
Согласно официальным требованиям Google к отправителям, все отправители должны настроить SPF или DKIM, у IP или домена отправки должны быть корректные прямая и обратная (PTR) DNS-записи, почта должна идти по TLS, а доля спама должна быть ниже 0,3 процента. Отправители, которые шлют на аккаунты Gmail больше 5000 писем в день, обязаны настроить все три: SPF, DKIM и DMARC.
Репутация IP
У каждого IP-адреса есть история. Если выданный вам адрес раньше использовали для злоупотреблений, он может оказаться в публичных списках блокировки (DNSBL). Перед отправкой проверьте свой адрес по этим спискам. У нового адреса репутации нет. Она складывается со временем, если начинать с небольших объёмов и отправлять регулярную ожидаемую почту. Резкая крупная рассылка обычно сразу портит репутацию нового адреса.
Осторожно с IPv6
Если у вашего сервера есть IPv6, Postfix может отправлять исходящую почту и по IPv6. Для IPv6 нужны собственные записи PTR и SPF. Если вы их не настроили, заставьте Postfix использовать IPv4. В документации Postfix сказано, что для этой настройки нужен перезапуск, а перезагрузки конфигурации недостаточно:
sudo postconf -e "inet_protocols = ipv4"
sudo systemctl restart postfix
Ресурсы и обслуживание
Postfix и Dovecot спокойно работают на небольшом сервере. Готовые пакеты вроде mailcow приносят также веб-интерфейс, спам-фильтр и антивирусную проверку. Официальное требование mailcow — не менее 6 GiB RAM плюс 1 GiB подкачки в конфигурации по умолчанию. Есть и другие варианты, например Mail-in-a-Box и iRedMail. Какой бы вы ни выбрали, обновления, бэкапы и мониторинг — ваша забота.
Памятка перед отправкой
- Открыт ли исходящий порт 25?
- Задана ли PTR-запись и разрешается ли она обратно в тот же IP?
- Опубликованы ли записи SPF, DKIM и DMARC?
- Действителен ли сертификат TLS?
- Нет ли IP-адреса в каком-нибудь списке блокировки?
- Попало ли пробное письмо самому себе во входящие или в спам?
Путь попроще
Для большинства проектов практичнее всего отправлять транзакционную почту (сброс пароля, уведомления о заказах) через сервис доставки почты, а для входящих использовать размещённый почтовый сервис. Ваш сервер занимается только приложением, а доставку писем вы оставляете специалистам. Если вы всё же хотите держать свой сервер, перед установкой проверьте записи выше.
Комментарии0
Комментариев пока нет
Поделитесь своим мнением первым.
Пожалуйста, войдите или зарегистрируйтесь, чтобы оставить комментарий.