EXIM4 Как я могу настроить сервер smarthost для пересылки только некоторых конкретных получателей?

Вопрос или проблема

Я использую exim4 на сервере Ubuntu с разбитой конфигурацией файлов.

Этот сервер работает как обычный интернет-сервер SMTP, но для некоторых конкретных адресов получателей (например, правило регулярного выражения) мне нужно перенаправлять исходящие сообщения на SMTP релейный сервер (smarthost) с аутентификацией.

Таким образом, когда мой сервер exim4 получает сообщение, соответствующее фильтру, оно не должно отправляться на его доменный MX-сервер, а на пользовательский smarthost, который обеспечит окончательную доставку.

Это возможно?
Я нашел только, как установить smarthost для всех сообщений, но не для некоторых конкретных получателей.

Ответ или решение

Как настроить сервер smarthost для перенаправления сообщений конкретным получателям в Exim4

Настройка Exim4 на Ubuntu для работы со смарт-хостами может быть сложной задачей, особенно когда необходимо перенаправлять сообщения только для определенных получателей. В данном руководстве мы рассмотрим, как настроить Exim4 так, чтобы он отправлял письма только для некоторых конкретных адресатов через SMTP-ретранслятор (smarthost) с учетом аутентификации.

Шаг 1: Убедитесь, что Exim4 настроен для работы с аутентификацией

Перед тем как перейти к фильтрации получателей, необходимо убедиться, что ваш Exim4 правильно настроен для использования SMTP-ретранслятора с аутентификацией. Для этого откройте файл конфигурации Exim4, который расположен по следующему пути:

sudo nano /etc/exim4/exim4.conf.template

И внесите следующее изменение, добавив настройки для вашего smarthost:

login: your_username
password: your_password

Затем добавьте раздел конфигурации:

host: your.smarthost.com

Шаг 2: Настроить маршрутизацию для конкретных получателей

После того как аутентификация будет настроена, следующим шагом является настройка маршрутизации. Для этого нужно создать файл маршрутизации. Откройте конфигурацию Exim4:

sudo nano /etc/exim4/exim4.conf.template

Добавьте следующий блок кода в конце файла для настройки маршрутизации:

#Router for specific recipients
custom_smart_host:
  driver = manualroute
  domains = ! +local_domains
  condition = ${if match{$recipients}{^.*@example\.com$}}
  transport = smtp
  route_list = * your.smarthost.com
  no_more

Здесь ^.*@example\.com$ — это регулярное выражение, которое соответствует адресам получателей. Если Вам нужно добавить дополнительные домены или адреса, можно использовать оператор | для разделения.

Шаг 3: Настройка SMTP транспорта

Теперь, когда маршрутизация установлена, нам необходимо определить, как точно Exim4 будет отправлять сообщения через smarthost. Для этого добавьте соответствующий транспорт в разделе transports:

custom_smtp:
  driver = smtp
  port = 587
  hosts = your.smarthost.com
  authentication = plain
  username = your_username
  password = your_password

Эти настройки включают необходимую аутентификацию, чтобы смарт-хост мог принимать сообщения от вашего сервера Exim.

Шаг 4: Обновление конфигурации Exim4

После внесения всех изменений в конфигурационные файлы обязательно обновите конфигурацию Exim. Выполните следующую команду:

sudo update-exim4.conf

И перезапустите Exim4 для применения изменений:

sudo systemctl restart exim4

Шаг 5: Тестирование

Теперь, когда ваша конфигурация завершена, выполните тестирование отправки писем. Убедитесь, что письма, отправленные конкретным получателям, действительно проходят через указанный смарт-хост, а все остальные сообщения отправляются через обычный MX-сервер.

Заключение

Настройка Exim4 для использования смарт-хоста при отправке сообщений определенным получателям требует тщательной настройки и понимания конфигурационной системы. Следуя указанным шагам, вы сможете создать мощную систему для управления электронной почтой на вашем сервере. С помощью регулярных выражений и ручной маршрутизации можно легко настраивать фильтрацию, обеспечивая высокую степень контроля над передачей сообщений.

Оцените материал
Добавить комментарий

Капча загружается...