Назад | Перейти на главную страницу

Postfix на сервере разработки, разрешить отправку почты только в один домен

У нас есть 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

Пояснение:

  • Postfix просматривает заголовки писем один за другим.
  • Каждая строка заголовка сопоставляется с header_checks файл построчно.
  • Если он соответствует первой строке (To: содержит разрешенный домен), он переходит к следующей строке заголовка и снова запускает проверку заголовка сверху. Поскольку никакая другая строка не будет соответствовать, это означает, что почта будет доставлена.
  • Если он соответствует второй строке (To: содержит другой внешний адрес электронной почты), он перенаправляет почту.

Ты пробовала header_checks (5)?