У нас есть postfix на нашем сервере разработки, и я бы хотел, чтобы он мог отправлять почту только в наш домен, а не в другие домены, чтобы внешние пользователи не могли случайно получать почту с нашего сервера разработки.
Я просмотрел документы, попробовал несколько вещей, но он все еще отправляется во все домены ...
транспорт (5) карты используются для переопределения маршрутизации электронной почты с помощью постфикса.
Добавьте следующую строку в /etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport
Добавьте новый файл / etc / postfix / transport с этим содержимым:
.example.com :
example.com :
* discard:
Заменить example.com
с доменом, на который ваш почтовый сервер должен по-прежнему отправлять письма. Если вас не интересуют поддомены, удалите первую строку.
Не забудьте хешировать файл после его редактирования с помощью почтовая карта (1) и перезагрузите постфикс, чтобы изменения вступили в силу:
# postmap /etc/postfix/transport && postfix reload
Вы можете легко ограничить получателей стандартными smtpd_recipient_restrictions или точнее check_recipient_access.
Просто создайте доступ (5) стол /etc/postfix/access
со следующим содержанием (example.com домен, на который вы хотите отправлять почту):
example.com OK
Вы также можете разрешить только определенные адреса:
user1@example.com OK
user2@example.com OK
Не забудьте хешировать файл после его редактирования с помощью почтовая карта (1):
# postmap /etc/postfix/access
Теперь поместите следующие ограничения получателей в ваш main.cf:
smtpd_recipient_restrictions =
hash:/etc/postfix/access
reject
и перезагрузите Postfix:
postfix reload
После этого, проверьте это, если это работает.
Так что, если кто-то споткнется об этом, как я: ответ действительно header_checks и он работает как таковой:
Добавьте следующую строку в /etc/postfix/main.cf
:
header_checks = regexp:/etc/postfix/header_checks
Добавить новый файл /etc/postfix/header_checks
с этим содержанием:
/^To:.*@allowed-domain.com/ DUNNO
/^To:.*@/ REDIRECT redirect@example.com
Заменить allowed-domain.com
с доменом, на который ваш почтовый сервер должен по-прежнему отправлять письма. Заменить redirect@example.com
с адресом электронной почты все остальные электронные письма должны быть перенаправлены.
Если вам нужно разрешить несколько доменов, первая строка должна выглядеть так:
/^To:.*@(allowed-domain.com|another-domain.com)/ DUNNO
Вместо перенаправления вы можете просто отбросить все остальные письма. Замените вторую строку выше на:
/^To:.*@/ DISCARD No outgoing mails allowed
Пояснение:
header_checks
файл построчно.To:
содержит разрешенный домен), он переходит к следующей строке заголовка и снова запускает проверку заголовка сверху. Поскольку никакая другая строка не будет соответствовать, это означает, что почта будет доставлена.To:
содержит другой внешний адрес электронной почты), он перенаправляет почту.Ты пробовала header_checks (5)?