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

Как я могу настроить sendmail для отправки другому получателю промежуточного хоста, если сообщение отправлено от определенного отправителя?

У меня есть сервер SendMail. Я хочу, чтобы трафик, идущий на "специальные" домены, перенаправлялся в другое место. Я сделал это, рассматривая некоторые домены как «локальные» и используя простую логику маршрутизации:

1) При отправке на специальные домены (например, DOMAINA.com или DOMAINB.com) отправьте на 1.1.1.1.

dnl # define mail_hub to special route
define(`MAIL_HUB',`relay:[1.1.1.1]')dnl

dnl # define list of 'local' domains that will be forwarded to the mail hub
define(`confCW_FILE',`/etc/mail-tls/special_domains')dnl

2) В противном случае отправьте в 2.2.2.2

define(`SMART_HOST',`relay:[2.2.2.2]')dnl

Кажется, это отлично работает. Но теперь у меня есть требование усложнить логику:

1) При отправке на специальные домены (например, DOMAINA.com или DOMAINB.com) и отправитель конверта НЕ отправка с sender@mydomainexample.com, отправить на 1.1.1.1

2) В противном случае отправьте в 2.2.2.2

Есть ли простой способ сделать это (не требуя milter)?

Вы можете комбинировать два рецепта sendmail.cf:

1) MailertableRuleSets - позволяет выбрать настраиваемый набор правил sendmail.cf для маршрутизации электронной почты через mailertable (настраиваемая маршрутизация по домену получателя)
Предупреждение: требуется патч из нескольких строк одного из файлов, используемых для генерации sendmail.cf

"Наборы правил Mailertable (sendmail)" от anfi (2004)

2) SmartTable - показывает, как выполнять маршрутизацию на основе адреса отправителя конверта ($f)

"Умный стол (sendmail)" от anfi (1999,2002)


ПРЕДУПРЕЖДЕНИЕ: sendmail сохраняет исходный адрес отправителя в $f при отправке сообщений о недоставке
(AFAIR при попытке доставки "сразу").