Entregando e-mails para um usuário de dois domínios em uma única caixa de correio no Postfix + Dovecot

6

Estou configurando um servidor de email usando o Postfix + Dovecot no RHEL7. Embora não seja necessário, gostaria de configurá-lo de forma que o servidor de e-mail seja capaz de hospedar vários domínios.

O problema que surgiu é que eu tenho dois nomes de domínio que são absolutamente sinônimos: em algum momento no passado, um nome alternativo foi introduzido para salvar alguns pressionamentos de tecla dos usuários. Todos os emails que existem com um nome de domínio também existem com o outro. Eu quero que os e-mails enviados para esses dois domínios sejam entregues nas mesmas caixas de correio. Gostaria de evitar reescrever os endereços para uma ortografia: se um usuário envia um email a partir do endereço que inclui o nome de domínio longo, o email deve aparecer como tal na entrega, mesmo sobre endereços de email mais curtos.

  1. O postfix está configurado para retransmitir mensagens para esses dois domínios

    # in /etc/postfix/main.cf
    relay_domains = hash:/etc/postfix/relay_domains
    
    # in /etc/postfix/relay_domains
    my-long-named-domain.com   lmtp:unix:private/lmtp-dovecot
    mydomain.com               lmtp:unix:private/lmtp-dovecot
    
  2. O postfix terceiriza a autenticação para o Dovecot via Dovecot SASL

    Trabalho de autenticação e entrega de e-mail para logins com curtos [email protected] e falha para logins longos [email protected] jogando uma mensagem User does not exist . Eu acho que isso acontece por causa dos caminhos, que são explicados em 3 e 4.

  3. O Dovecot usa o mecanismo passwd-file para userdb e passdb , em que %d é usado em caminhos de arquivo para diferenciar entre domínios.

    # in /etc/dovecot/conf.d/auth-passwdfile.conf.ext
    passdb {
        driver = passwd-file
        args = scheme=CRYPT username_format=%n /etc/dovecot/%d/users
    }
    
    userdb {
        driver = passwd-file
        args = username_format=%n /etc/dovecot/%d/users
        default_fields = uid=vmail gid=vmail
    }
    

    O arquivo de usuários está localizado apenas sob o nome de domínio curto: /etc/dovecot/mydomain.com/users .

  4. O parâmetro mail_location também usa %d :

    mail_location = maildir:/var/vmail/%Ld/%Ln/Maildir
    

Pergunta: Existe uma maneira de mapear o nome de domínio longo para o curto e fazê-lo apenas para este par específico de domínios? Eu quero que todos os e-mails para esses dois domínios sejam entregues a maiboxes com mydomain.com :

   /var/vmail/mydomain.com/user1/Maildir
   /var/vmail/mydomain.com/user2/Maildir
   /var/vmail/mydomain.com/user3/Maildir

Deve ser feito no Postfix ou no Dovecot?

Eu sei que posso criar links físicos / físicos para garantir que ambos os diretórios existam, mas eu não gosto dessa solução (absolutamente!).

Em geral, qual é a abordagem correta para resolver esse problema? Eu sou bastante novato em coisas de servidor de email.

Thanx

    
por Nik O'Lai 05.10.2015 / 21:24

1 resposta

0

Em vez de usar relay_domains , você pode usar virtual_alias_domains & virtual_alias_maps para apontar o formulário longo para o formato abreviado:

@my-long-named-domain.com       @mydomain.com

Você pode ler virtual (5) para obter mais informações, ou há toneladas de instruções para os detalhes de usar aliases virtuais no Postfix.

Aqui está um ponto a ponto se virtual (5) é muito denso para um primeiro curso:

    
por 31.08.2018 / 16:09