Иногда очень утомляет делать одно и то же по сути рутинное действие больше одного раза. Например, разрешать пересылку почты через почтовый сервер с установленным sendmail для определённого IP-адреса сначала на уровне firewall-а, а потом еще и в конфигах самого sendmail-а. Поэтому я принял ответственное решение разрешить sendmail-у relaying для всех, но firewall-ом пускать только избранных, чтобы всякие ушлые спамеры не поимели наш сервер. Далее расписано как это делать, поскольку процедура оказалась слегка не очевидная.
- В файл access добавить строчку
*.* RELAY
-
В sendmail.mc найти строчку "dnl FEATURE(`relay_mail_from')dnl" и поменять её, чтобы она выглядела так:
FEATURE(promiscuous_relay)dnl
- Выполнить команду make и перезапустить sendmail:
make ; service sendmail restart
Вся эта последовательность действий может быть выполнена следующим bash-скриптом:
cd /etc/mail cp -p sendmail.mc sendmail.mc.bak grep -E "^FEATURE\(promiscuous_relay\)" sendmail.mc || sed -i "/use_ct_file/ aFEATURE(promiscuous_relay)dnl" sendmail.mc sed -i "/127.0.0.1/ a# WARNING! FEATURE(promiscuous_relay) was set. Be careful!" access make diff sendmail.mc.bak sendmail.mc || service sendmail restart
На всякий случай: мой Makefile из директории /etc/mail можно скачать по этой ссылке.
ПРЕДУПРЕЖДЕНИЕ: если Вы захотите сделать вышеописанное у себя, обязательно убедитесь, что сервер не открыт для всего Интернета. Иначе об этом быстро узнают спамеры и будут слать через него свою нечисть, Ваш сервер попадёт в чёрные списки и в самом худшем случае провайдер может вообще прекратить предоставление сервиса.
В файл access на самом деле ничего добавлять необязательно.