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

Sendmail: используйте SMART_HOST для локальной почты

Мы используем фильтр исходящего спама, и мы хотели бы иметь возможность отправлять почту через этот фильтр, даже если она адресована локальному пользователю. Есть ли способ заставить sendmail использовать SMART_HOST, даже если он будет доставлен локально?

пример

Вот что я хочу. Мой хост - example.com. Если я отправлю письмо с адреса me@example.com (используя SMTP) на адрес you@example.com, я хочу, чтобы электронное письмо перешло с mail.example.com на outbound.example.com на inbound.example.com, а затем обратно на mail.example.com. Возможно ли это без создания бесконечного цикла?

Да, вы также захотите установить параметры MAIL_HUB и LOCAL_RELAY. См. Раздел под названием MASQUERADING AND RELAYING в ReadMe Sendmail.


В пределах одного только Sendmail это невозможно (насколько я знаю). Однако вы могли бы сделать следующее:

  1. Настройте всю локальную почту (submit.mc) для пересылки всей электронной почты на outbound.example.com
  2. Настройте правило брандмауэра для перенаправления любых подключений к 25 / TCP и 587 / TCP (и любым другим используемым вами портам SMTP), которые не исходят с inbound.example.com на outbound.example.com (вам необходимо включать петлевую проверку, а также физические интерфейсы)

Теоретически это должно ловить почти все, но может сильно сломать. Я понятия не имею, что случится, если кто-нибудь вызовет sendmail локально. Если вы запускаете установку веб-почты, проверьте, можете ли вы настроить ее для отправки всей электронной почты через outbound.example.com, а не локально.

Может быть проще интегрировать спам-фильтр в mail.example.com.

Это звучит как работа для procmail в качестве LDA. Используйте его, чтобы активировать спам-фильтр для любого локально созданного письма.

определить (PROCMAIL_MAILER_PATH',/ usr / local / bin / procmail ') ФУНКЦИЯ (local_procmail_lmtp) MAILER (procmail) MAILER (procmailnoalias) dnl

и в вашем глобальном правиле procmail найдите отсутствующий x-заголовок, чтобы затем отправить почту для сканирования

например: 0H * <10000000 *! ^ X-Local-Scanned: MySuperScanner