Назад | Перейти на главную страницу

Перенаправлять всю электронную почту для одного домена в одну учетную запись или файл, но правильно доставлять другие домены

У меня есть сервер 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 :

  1. Создайте локального пользователя mylocaluser и его почтовый ящик или maildir
  2. Создайте файл с именем 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
    
  3. Перезапустить постфикс

Теперь вся почта, предназначенная для *@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

В порядке, Эрик приблизил меня к правильному пути, но не совсем там. Вот что я сделал:

  1. В /etc/postfix/main.cf:

    virtual_alias_domains = example.com
    virtual_alias_maps = regexp:/etc/postfix/virtual_alias
    
  2. В / etc / postfix / virtual_alias

    /@example\.com/ ptomblin
    

Один postfix reload позже, и я уехал на скачки. (Кстати, вам не нужно делать postmap в файлах регулярных выражений только хеши)