Мне нужен способ настроить 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