Переслать всю электронную почту для одного домена в одну учетную запись или файл, но правильно доставить другие домены
У меня есть сервер Linux, который использует Postfix для электронной почты. Он находится на динамическом ip, поэтому я использую параметр relayhost для отправки исходящей почты через туннель ssh на другой сервер на статическом ip, и оттуда он отправляется в реальный мир. Это работает нормально примерно с 1998 года или около того.
В настоящее время я разрабатываю какое-то программное обеспечение для клиента, и оно отправляет электронную почту различным людям в организации этого клиента на основе информации в базе данных. Для моего первоначального тестирования я создал поддельных людей, у которых были все адреса электронной почты, такие как ptomblin+client1@ enjmydomain отпуска.com, которые работали нормально и отправили мне все письма. Но сейчас я работаю с действующей базой данных, и все адреса электронной почты предназначены для реальных людей в организации клиента. Я не особо хочу отправлять электронное письмо тем людям, сообщая им, что запрашиваемый ими системный доступ предоставлен, поэтому я хотел бы перенаправить всю электронную почту в домен этого клиента либо на мой адрес электронной почты, либо в файл.
2 ответа
Если я правильно понимаю, вы хотите, чтобы вся почта, предназначенная для example.com, доставлялась на ваш почтовый адрес или в файл, а не пересылалась на сервер, указанный в relayhost:
Шаг 1: Добавьте example.com к mydestination
в main.cf, чтобы почта, предназначенная для example.com, доставлялась локально.
Шаг 2: Установите перехват для example.com и отправьте всю электронную почту на ваш почтовый адрес или в файл. Например, вы можете использовать postfix pcre для достижения этой цели.
Расширенный шаг 2
Использование postfix pcre - это только один из способов добиться этого среди многих других. Согласно этому уроку от garisson:
- Создайте локального пользователя mylocaluser и его почтовый ящик или почтовый ящик
Создайте файл с именем aliases-pcre с содержимым:
/@example\\.com$/ mylocaluser
добавьте следующие строки в main.cf (если main.cf находится в /etc/postfix):
alias_database = hash:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases, pcre:/etc/postfix/aliases-pcre
Перезапустить постфикс
Теперь вся почта, предназначенная для *@example.com, должна отправляться в почтовый ящик mylocaluser / maildir.
Опять же, это всего лишь пример. Вы можете использовать любой другой метод, который наилучшим образом соответствует вашим потребностям. Я часто использую pcre, потому что он позволяет использовать регулярные выражения, которые немного сложнее.
Однако вышеперечисленное не будет работать, так как вам нужен виртуальный домен.
Вот минимальный пример конфигурации:
(main.cf)
alias_database = hash:/etc/aliases
local_recipient_maps =
relayhost = myotherserver.example.com
virtual_alias_maps = pcre:/etc/postfix/aliases-pcre
virtual_alias_domains = example.com
mydestination = localhost
файл /etc/postfix/aliases-pcre
/@example\.com$/ somelocaluser
Хорошо, Эрик привел меня близко к правильному пути, но не совсем там. Вот что я сделал:
В /etc/postfix/main.cf:
virtual_alias_domains = example.com virtual_alias_maps = regexp:/etc/postfix/virtual_alias
В /etc/postfix/virtual_alias
/@example\.com/ ptomblin
Один postfix reload
позже и я был вдали от гонок. (Кстати, вам не нужно делать postmap
в файлах регулярных выражений только хэши)