- Как настроить SMTP-сервер на Hetzner, который будет отправлять электронные письма и не рассылать спам?
- Предлагаемая архитектура и первоначальные соображения.
- Этапы подготовки отправляющего сервера (Hetzner)
- DKIM, SPF и DMARC — настройка DNS
- Получение электронных писем на другом сервере и обработка отказов.
- Как избежать спама — лучшие практики
- Контролируйте скорость отправки, очереди и предотвращайте нанесение ущерба репутации.
- Тесты и инструменты для проверки возможности доставки.
- Полный пример процесса: отправка из приложения A с использованием Hetzner в качестве ретранслятора.
- Дополнительные советы по технике безопасности и эксплуатации.
- Рекомендуемые бесплатные инструменты с открытым исходным кодом для автоматизации
- Ссылка на услуги компании (более 85 филиалов и предоставляемые услуги)
- Последний пункт
Как настроить SMTP-сервер на Hetzner, который будет отправлять электронные письма и не рассылать спам?
В этом руководстве пошагово объясняется, как настроить SMTP на облачном сервере Hetzner для отправки электронных писем и сопоставления получения писем с другим сервером. Также рассматриваются важные настройки DNS (SPF, DKIM, DMARC, PTR), аутентификация (SASL/TLS), управление отказами и отписками, а также практические рекомендации по предотвращению попадания в черный список.
Предлагаемая архитектура и первоначальные соображения.
Предлагаемая архитектура:
- Сервер отправки (облако Hetzner): установка Постфикс + OpenDKIM + OpenDMARC + TLS — Отвечает за отправку электронной почты (SMTP-ретранслятор).
- Входящий сервер (например, ваш VPS или хостинг): записи MX указывают на этот сервер; он отвечает за доставку и прием входящих сообщений (POP/IMAP/Dovecot или ваша почтовая служба).
- Сообщения о недоставке и отписке: сообщения о недоставке отправляются на выделенный адрес, и обработка этого почтового ящика осуществляется принимающим сервером.
- Пользователи/Приложения: Использование SMTP AUTH (или авторизация на основе IP-адреса) необходимо пройти аутентификацию на сервере Hetzner, чтобы получить разрешение на ретрансляцию.
Этапы подготовки отправляющего сервера (Hetzner)
Установка базовых пакетов (Debian/Ubuntu)
Пример для Ubuntu/Debian:
sudo apt update
sudo apt install -y postfix dovecot-core dovecot-imapd opendkim opendkim-tools opendmarc certbot postfix-policyd-spf-python rspamdНастройка имени хоста и PTR
Необходимо задать имя хоста на сервере переадресации и зарегистрировать обратное DNS-запрос в панели Hetzner.
sudo hostnamectl set-hostname mail.example.comСоветы по настройке Postfix: Количество имя моего хоста Установите значение mail.example.com и введите значение mail.example.com в панели Hetzner для обратного IP-адреса.
Настройка TLS с помощью Let's Encrypt
Выдача сертификата и его указание в настройках Postfix:
sudo certbot certonly --standalone -d mail.example.comВ main.cf Сложите следующие значения:
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_use_tls = yes
smtp_tls_security_level = may
smtpd_tls_security_level = mayБазовая конфигурация Postfix (фрагмент файла main.cf)
Подборка важных мест действия в main.cf:
myhostname = mail.example.com
myorigin = /etc/mailname
mydestination = localhost
relay_domains =
mynetworks = 127.0.0.0/8
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_helo_required = yesОбъяснение: reject_unauth_destination Предотвращает использование вашего сервера в качестве открытого ретранслятора; ретрансляцией могут быть только авторизованные пользователи или известные машины.
Включение SASL в Dovecot (для аутентификации отправляющих пользователей)
В файле /etc/dovecot/conf.d/10-master.conf Раздел аутентификация службы Настройте это следующим образом:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}Для аутентификации можно использовать локальный пароль, базу данных SQL или LDAP. Затем перезапустите службы:
sudo systemctl restart dovecot postfixDKIM, SPF и DMARC — настройка DNS
Генерация ключа DKIM с помощью OpenDKIM
Пример создания ключа DKIM на отправляющем сервере:
sudo mkdir /etc/opendkim/keys/example.com
sudo opendkim-genkey -b 2048 -d example.com -s mail -D /etc/opendkim/keys/example.comФайл mail.txt Сгенерировано; содержимое TXT-записи для добавления в DNS: selector = электронная почта → mail._domainkey.example.com.
Пример настроек /etc/opendkim.conf (Отрывок):
Domain example.com
KeyFile /etc/opendkim/keys/example.com/mail.private
Selector mail
AutoRestart yes
Socket local:/var/spool/postfix/opendkim/opendkim.sockИ в /etc/postfix/main.cf Добавлять:
milter_default_action = accept
smtpd_milters = unix:/var/spool/postfix/opendkim/opendkim.sock
non_smtpd_milters = $smtpd_miltersзапись SPF
В DNS рассматриваемого домена:
example.com. IN TXT "v=spf1 ip4:YOUR_HETZNER_IP include:spf.protection.example ?all"Или, если говорить точнее:
"v=spf1 ip4:YOUR_HETZNER_IP -all"Рекомендация: В начале ~все Или ?все Используйте этот метод, чтобы первоначальные ошибки не привели к полному отклонению, а затем будьте более строгими.
запись DMARC
Пример использования DMARC в DNS:
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100; adkim=s; aspf=s"Примечание: Для начала вы можете p=нет Давайте посмотрим отчеты. p=карантин Или p=отклонить Активировать.
Получение электронных писем на другом сервере и обработка отказов.
Как настроить MX для приема
Пример записи MX в DNS:
example.com. IN MX 10 mail-receive.example.orgПримечание: MX-запись должна указывать на принимающий сервер; ваш отправитель использует Hetzner для исходящей электронной почты, поэтому для отправляющего домена необходимо установить запись SPF/DKIM.
Настройка обратного пути и управление возвратами
Несколько важных моментов:
- Параметр Return-Path должен быть специально предназначен для обработки возвратов; лучше всего указать выделенный поддомен, например, bounce.example.com Укажите.
- Вы можете использовать VERP для любого электронного письма:
envelope-from="[email protected]"Для более точного определения доходности.
Обработка отказов — рекомендуемый процесс:
- Адрес
[email protected]Создайте его и укажите в его MX-запросе сервер, который его обрабатывает. - Этот сервер с fetchmail / получить почту Или же напрямую получить доступ к почтовому ящику IMAP и выполнить действия с помощью скриптов обработки отказов.
- Для анализа отказов можно использовать такие инструменты, как... фланкер Или Mail::Delivery::BounceParser Использовать.
Пример обработки отскоков с помощью Flanker (Python)
Первая установка:
pip install flankerПростой пример скрипта (чтение из стандартного ввода и обработка):
from flanker import mime
from flanker.utils import bounces
import sys
raw = sys.stdin.read()
msg = mime.from_string(raw)
bounce = bounces.parse(raw)
# classify and store bounce info in database or suppression listПо категориям сильный отскок (ошибки 5xx) и мягкий отскок (4xx) Вы можете применить политики удаления или повторной попытки.
Как избежать спама — лучшие практики
Технические настройки
- ПТР Соответствует
имя моего хостаи А — это рекорд. - SPF, ДКИМ, DMARC Включить и подписать DKIM.
- Баннер HELO/SMTP соответствует имени хоста.
- TLS включен и
smtpd_tls_auth_only = yesДля предотвращения передачи незашифрованных данных. - Избегайте IP-адресов с плохой историей и используйте правильные реляционные DNS-серверы.
Политика в отношении контента и списки
- Всегда от двойное подтверждение Используйте для списков рассылки по электронной почте.
- В каждом электронном письме должна быть простая и понятная ссылка для отписки; в заголовке письма.
Отписаться от спискаИспользовать:
List-Unsubscribe: <mailto:[email protected]>, <https://example.com/unsubscribe?email=...>- IP-прогрев: Отправляйте небольшую сумму с первого дня и постепенно увеличивайте её.
- Удаление или пометка адресов с высоким процентом отказов или жалоб.
- Соответствие таким законам, как CAN-SPAM и GDPR, для европейских пользователей.
Контролируйте скорость отправки, очереди и предотвращайте нанесение ущерба репутации.
Настройки ограничения параллельного выполнения и задержки назначения в Postfix:
postconf -e "smtp_destination_concurrency_limit = 20"
postconf -e "smtp_destination_rate_delay = 1s"Для более сложных политик, чем те, что используют демоны политик, подобные этим. постфвд, политика Или rspamd Использовать.
Управление очередями с помощью команд Postfix:
postqueue -p
postsuper -d ALLDeferredТесты и инструменты для проверки возможности доставки.
- Для проверки SMTP из сваки Использовать:
swaks --to [email protected] --from [email protected] --server mail.example.com --auth LOGIN --auth-user smtpuser --auth-password smtppass --tls- Проверьте заголовки с помощью mail-tester.com и MXToolbox Для проверки черного списка и SPF/DKIM/DMARC.
- Отслеживание журналов с помощью:
tail -f /var/log/mail.logАнализ отчетов DMARC на основе значений руа и руф Помогает выявить проблемы с доставкой.
Полный пример процесса: отправка из приложения A с использованием Hetzner в качестве ретранслятора.
- Приложение А к
mail.example.com:587Взаимодействует с пользователемsmtp_userи пароль; выполняется аутентификация. - После проверки сервер Hetzner отправляет электронное письмо, которое затем подписывается DKIM-подписью; также устанавливаются параметры SPF и PTR.
- Если будет возвращено, перенаправьте на
[email protected]отправлено; MX-запрос для сообщения о недоставке указывает на сервер, который выполняет анализ. - Приложение считывает список исключений и блокирует адрес для жестких возвратов.
Дополнительные советы по технике безопасности и эксплуатации.
- Убедитесь, что исходящий порт 25 открыт на сервере (у Hetzner иногда бывают сетевые ограничения).
- Для предотвращения злоупотреблений аутентификация должна быть обязательной; никогда не оставляйте сервер в качестве открытого ретранслятора.
- Отправляйте журналы в систему мониторинга (ELK/Graylog) для анализа всплесков активности отправки или ошибок в ответах.
- В случае большого объема отправляемых данных используйте выделенный IP-адрес и постепенно повышайте его пропускную способность.
Рекомендуемые бесплатные инструменты с открытым исходным кодом для автоматизации
- Postfix (SMTP)
- Dovecot (SASL/IMAP)
- OpenDKIM / OpenDMARC
- Rspamd используется для фильтрации и оценки.
- fetchmail / getmail для получения информации о недоставленных письмах
- flanker или Mail::Delivery::BounceParser для обработки отказов в доставке.
- postfwd / policyd для ценообразования и политик
Ссылка на услуги компании (более 85 филиалов и предоставляемые услуги)
Если вам нужна инфраструктура с широким сетевым доступом и разнообразным расположением, вы можете использовать подходящие сервисы для выбора ближайшего к вашей аудитории центра обработки данных, чтобы уменьшить задержку и улучшить доставку данных.
- Больше, чем 85 точек Мир выбора центров обработки данных.
- Высокопроизводительный облачный сервер с выделенным IP-адресом для email-маркетинга и SMTP-сервисов.
- Сервер с защитой от DDoS-атак, различные VPS-серверы, а также поддержка настройки сети и безопасности.
Последний пункт
Если вы готовы начать, вы можете ознакомиться с тарифными планами облачных серверов, выделенными IP-адресами, а также услугами управления DNS и безопасностью, или обратиться в техническую поддержку для настройки параметров, внедрения DKIM/DMARC и управления переадресацией запросов. Служба поддержки готова предоставить техническую помощь и консультации.









