Иногда в целях тестирования возникает необходимость произвести массовую рассылку электронной почты. Так как рассылка тестовая, то уход её за контур тестирования не допустим, в тоже время есть необходимость проверить то, что мы отправляем. Для решения данной задачи, будем использовать «Почтовую петлю». В качестве сервера выступает postfix под linux.
Сама петля делается через «virtual-regexp»
Добавляем в main.cf
virtual_alias_maps = regexp:$config_directory/virtual-regexp mydestination = $myhostname, localhost.$mydomain, localhost, <ваш домен или домены> |
Создаем /etc/postfix/virtual-regexp
/.*/ root |
В данном случае, вся корреспонденция проходящая через наш сервер будет попадать к локальному пользователю «root».
Проверим:
# cd /etc/postfix/ # postmap -q test@test.test regexp:virtual-regexp root |
Если мы не хотим агрегировать почту, то можно отправить её в «/dev/null».
Напрямую слать почту /dev/null не выйдет, поэтому сделаем соотвествующий алиас:
Создаем в /etc/aliases, алиас:
devnull: /dev/null |
Не забываем выполнить «newaliases»
пользователя devnull прописываем в virtual-regexp.
Выход из петли для определенного домена.
Как я уже писал выше, для некоторых доменов (пользователей) почту пересылать все-таки необходимо.
Делается это путем редактирования «virtual-regexp» и заданием «transport_maps»
Задаем в «virtual-regexp» в виде регулярки домен, список доменов или пользователя чьи данные мы будем пересылать.
/^(.*)@domain.com$/ $1@domain.com /.*/ root |
Не забываем сделать проверку.
В main.cf
virtual_alias_maps = regexp:$config_directory/virtual-regexp transport_maps = hash:/etc/postfix/transport mydestination = $myhostname, localhost.$mydomain, localhost, domain.com |
Создаем файл /etc/postfix/transport
domain.com smtp:mx.domain.com |
Не забываем скомпилить базу:
postmap /etc/posfix/transport |
Перезапускаем postfix.
В данном случае, я явно указал указал relay сервер для пересылки для «domain.com».