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

Sendmail: установка фиксированного значения отправителя конверта

Мне нужен способ настроить sendmail для установки фиксированного значения отправителя конверта каждого сообщения (скажем, foo@bar.com). Обратите внимание, что это не ответил любой из функций / макросов MASQUERADE (о которых я знаю): я хочу также переопределить пользователя конверта и установить для него фиксированное значение.

РЕДАКТИРОВАТЬ: Кроме того, я не хочу маскировать отправителя заголовка. Так что GENERICSTABLE + MASQUERADE_ENVELOPE тоже не сокращает его. Мне нужен эквивалент командной строки sendmail -f foo@bar.com

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

TIA.

Это может быть достигнуто с помощью уродливый но очень простой хак. Положи это после MAILER(smtp) в твоем sendmail.mc файл и создать новый sendmail.cf файл.
Там ДОЛЖНО БЫТЬ табуляция (\ t) перед $: в R линия.
divert(0) отменяет эффекты MAILER_DEFINITIONS.

MAILER_DEFINITIONS
SEnvFromSMTP
R$+ <@foo.org.>   $: john.doe <@example.net.>
divert(0)

Он добавляет дополнительную перезапись в конце набора правил обработки адресов отправителя конверта для всех почтовых программ на основе smtp. Строка R перезаписывает все адреса *@foo.org в john.doe@example.net

Вы можете протестировать это, используя следующий скрипт:

/usr/sbin/sendmail -bt <<END
/tryflags es
/try esmtp xyz@foo.org
END

Вы можете использовать ОСОБЕННОСТЬ (универсальный стабильный) и ОСОБЕННОСТЬ (masquerade_envelope) для перезаписи всех адресов отправителей в домене электронной почты вашего хоста (отправитель конверта и отправитель заголовка (От :)).

универсальный

@foo.org  jane.doe@example.net

Не забудьте для указания доменов, подвергающихся такой перезаписи, в sendmail.mc:

GENERICS_DOMAIN(`foo.org')

Вы можете использовать ОСОБЕННОСТЬ (local_no_masquerade) чтобы исключить локальную электронную почту из таких перезаписей.

http://www.sendmail.com/sm/open_source/docs/m4/masquerading_relaying.html