У меня есть сервер Linux, который использует Postfix для электронной почты. Это динамический IP-адрес, поэтому я использую параметр «relayhost» для отправки исходящей почты через туннель ssh на другой сервер на статическом IP-адресе, а оттуда он выходит в реальный мир. Это работает нормально примерно с 1998 года.
В настоящее время я разрабатываю программное обеспечение для клиента, и оно отправляет электронные письма различным людям в организации этого клиента на основе информации в базе данных. Для своего первоначального тестирования я создал фальшивых людей, у всех которых были адреса электронной почты, такие как ptomblin+client1@{mydomain}.com, которые работали нормально и отправляли мне все письма. Но теперь я работаю с действующей базой данных, и все адреса электронной почты предназначены для реальных людей в организации клиента. Я не особо хочу отправлять электронное письмо этим людям, сообщая им, что запрошенный ими доступ к системе был предоставлен, поэтому мне нужен способ перенаправить всю электронную почту в домен этого клиента либо на мой адрес электронной почты, либо в файл.
Если я правильно понимаю, вы хотите, чтобы вся почта, предназначенная для example.com, доставлялась на ваш почтовый адрес или в файл, а не на сервер, указанный в relayhost:
шаг 1: Добавить example.com в mydestination
в main.cf, чтобы почта, предназначенная для example.com, доставлялась локально.
шаг 2: Настройте общий доступ для example.com и отправляйте все сообщения электронной почты на свой адрес электронной почты или в файл. Вы можете, например, использовать postfix pcre для этого.
Расширенный шаг 2
Использование postfix pcre - лишь один из многих способов добиться этого. Согласно к этому руководству от garisson :
Создайте файл с именем 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
в файлах регулярных выражений только хеши)