Postfix MX + MX híbrido para contas locais

5

Aqui está a configuração:

Temos um domínio, mydomain.com. Tudo está em nosso próprio servidor, exceto contas de e-mail gerais que são através do Gmail.

Atualmente, o Gmail está definido como o registro MX.

O servidor também possui vários aliases de e-mail que ele precisa para suportar rastreadores de bugs e outros. por exemplo. [email protected] | /path/to/issuetracker.script

Estou lutando com uma configuração que permite o seguinte, tanto localmente quanto dos clientes de e-mail do usuário.

  1. guser1 - tem uma conta do Gmail e uma conta local
  2. guser2 - só tem uma conta do Gmail
  3. bugs - tem um alias de pipe em / etc / aliases para rastreador de problemas

Cenários

Então, a primeira tentativa foi criar um mapa de transporte. Neste cenário, o nosso servidor seria definido como o MX e os e-mails destinados ao guser * são enviados para o gmail. Coloque os usuários do Gmail em um mapa assim:

[email protected] smtp:gmailsmtp:25
[email protected] smtp:gmailsmtp:25

Problemas:

  • Ignora extensões como [email protected]
  • Funciona somente se append_at_myorigin = no (se definido como yes, o Gmail se recusa a se conectar com: E4C7E3E09BA3: to =, relay = none, delay = 0.05, atrasos = 0.02 / 0.01 / 0.02 / 0, dsn = 4.4.1, status = adiada (conecte-se ao gmail-smtp-in.l.google.com [209.85.222.57]: 25: Conexão recusada))
  • desde que append_at_myorigin está definido como não, todos os emails recebidos têm (remetente desconhecido)

A segunda tentativa foi definir aliases de localhost explícitos em / etc / aliases e fazer um domínio amplo em mydomain. Isso também requer a configuração do servidor local como o MX:

root: root@localhost
# transport
mydomain.com smtp:gmailsmtp:25

Problemas: * Se eu criar um mapa de transporte para um domínio que corresponda a "$ myhostname", o arquivo de aliases nunca será analisado. Então, quando um usuário local (ou daemon) envia um email como:

mail -s "testing" root < text.txt

O postfix ignora a entrada / etc / alias e mapeia para [email protected] e tenta enviá-la para o mapeamento de transporte do gmail.

Terceira tentativa:

Crie um subdomínio para os bugs, algo como bugs.mydomain.com. Defina o MX para este domínio para o servidor local e deixe o MX para mydomain.com no servidor do Gmail.

Problemas: * Não resolve o problema com contas locais. Assim, quando o rastreador de bugs responde a um e-mail de [email protected], ele usa um transporte local e o usuário nunca recebe o e-mail.

% postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_at_myorigin = no
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$myhostname, localhost
myhostname = mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = 
smtp_tls_cert_file = /etc/ssl/certs/kspace.pem
smtp_tls_enforce_peername = no
smtp_tls_key_file = /etc/ssl/certs/kspace.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_scert_verifydepth = 5
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_mynetworks,   reject_invalid_hostname,   reject_non_fqdn_sender,   reject_non_fqdn_recipient,   reject_unknown_sender_domain,   reject_unknown_recipient_domain,   reject_unauth_destination
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_random_source = dev:/dev/urandom
transport_maps = hash:/etc/postfix/transport
    
por krunk 09.06.2010 / 01:48

1 resposta

2

Mude para virtual. Leia os documentos VIRTUAL por postfix. Você tem muito mais controle dessa maneira.

main.cf:

virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_maps = hash:/etc/postfix/virtualmailboxmap
virtual_mailbox_domains = mydomain.com
virtual_transport = local:

virtual, liste todos os usuários que você tem

localuser  localuser
somealias  localuser
guser1     [email protected],guser1
bugs       [email protected]

virtualmailboxmap, liste todos os usuários locais, o lado direito não importa!

 localuser   rhsunused
 guser1      rhsunused

transporte:

 mydomain.com      local:
 gmail.mydomain.com smtp:gmailsmtp:25
 issuetracker.mydomain.com smtp:[issuetracker ip]:25

Eu tive isso com um cyrus: transporte para contas locais. Eu sei que esta não é uma resposta completa para todas as suas perguntas, mas poderia ser um começo.

    
por 15.07.2010 / 17:55