От клиента поступил нестандартный запрос по настройке работы почтового сервера — всю исходящую корреспонденцию от двух конкретных ящиков необходимо прозрачно дублировать на третий, одновременно с этим, необходимо запретить любые отправления с этого третьего ящика.
- manager1@domain.com и manager2@domain.com — ящики с которых нужно дублировать почту.
- control@domain.com — ящик на который нужно дублировать почту, и с которого нужно запретить отправку.
На сервере работал Exim, так что решилось всё с помощью его фильтров следующим образом:
Делаем файл для логов и подключаем в exim файл с фильтрами:
# :>/var/log/filter.log
# cat /etc/exim/exim.conf | grep filt system_filter = /etc/system_filter.exim
В файле с фильтрами указываем следующие правила…
Запрещаем движение почты если в заголовке есть отправитель control@. В логе оставляем запись о том, что такое-то письмо было заблокировано:
logfile /var/log/filter.log 0644 if ( $header_from contains "control@domain.com" ) then logwrite "$tod_log $message_id from $sender_address is blocked" seen finish endif
Если отправителем является ящик manager1@ или manager2@, дублируем такое письмо на нужную нам почту:
logfile /var/log/filter.log 0644 if ( $sender_address is "manager1@domain.com" ) then logwrite "$tod_log $message_id from $sender_address is redirected" unseen deliver control@domain.com endif logfile /var/log/filter.log 0644 if ( $sender_address is "manager2@domain.com" ) then logwrite "$tod_log $message_id from $sender_address is redirected" unseen deliver control@domain.com endif
С применением этих правил, необходимая клиенту схема была запущена в работу.