Postfix atrás de um relé para lidar com mensagens recebidas e enviadas com /etc/aliases

Postfix atrás de um relé para lidar com mensagens recebidas e enviadas com /etc/aliases

Estou tentando configurar postfixem uma máquina Linux (Debian 8 com Postfix 2.11). Mas tenho alguns problemas para /etc/aliasesfuncionar corretamente.

A configuração é a seguinte: Um servidor MS Exchange é o servidor de e-mail real - ele recebe e envia e-mails e está na mesma rede local que a máquina Linux. O Postfix na máquina Linux usa esta máquina Exchange como um retransmissor para enviar e-mails. Isso funciona, então por exemplo chega.mail [email protected]

Agora no Exchange existe um endereço de email que é encaminhado para a máquina Linux. Em /etc/aliaseseu tenho um alias para isso que é um canal para um programa, porque os e-mails que vão para esse endereço contêm algum código que deve ser analisado pelo programa.

Para fazer isso funcionar, tenho que alterar a mydestinationconfiguração em main.cf. Mas assim que faço isso, o Postfix para de retransmitir e-mails quando o alias de /etc/aliasesé usado. Apenas digitar o nome longo funciona. Esta é a minha configuração (comecei do zero):

# main.cf
# our internet domain name (the thing after the "@")
mydomain = example.com

# this is the critical setting
mydestination = linuxmachine, 192.168.1.200, $mydomain

# IP of Exchange
relayhost = 192.168.1.100

# so that addresses look correct
masquerade_domains = $mydomain

# in order to make the pipe programm work with correct permission
default_privs = myuser

Com esta configuração, o encaminhamento de mensagens recebidas funciona, mas o envio de mensagens para um alias não funciona:

# /etc/alias
# none of the entries are actual users on the linux machine!

#works when mail to [email protected] comes from external through Exchange to Linux
parser: |/home/user/programname 

# command "mail external" does not work! It sends to external@linuxmachine"
external: [email protected] 

Se eu comentar a linha mydestination, main.cfenviarei mail externalum e-mail para [email protected](que chega), mas o e-mail recebido [email protected]não será enviado pelo canal. Então, exatamente o contrário.

O que devo inserir main.cfpara /etc/aliasespoder enviar e-mails da minha máquina Linux usando nomes abreviados e ao mesmo tempo poder receber e-mails em um canal? Tudo que eu quero é que um endereço especial seja analisado na máquina Linux e que os usuários Linux possam enviar e-mails para endereços selecionados usando nomes curtos como um "luxo" (em vez de digitar endereços de e-mail completos).

Atualização: postconf -nsaída:

config_directory = /etc/postfix
default_privs = myuser
masquerade_domains = $mydomain
mydestination = linuxmachine, 192.168.1.200, $mydomain
mydomain = example.com
relayhost = 192.168.1.100

Atualização 2: Saída /var/log/mail.infoao fazer mail external(mail para alias) com mydestinationconjunto como acima:

Jun 19 10:45:27 linuxmachine postfix/smtp[26425]: 6DFE02003AD: to=<[email protected]>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=0.24, delays=0/0/0/0.24, dsn=2.6.0, status=sent (250 2.6.0 <[email protected]> [InternalId=162319] Queued mail for delivery)

Atualização 3, após alterar mydestinationde acordo com a resposta proposta, o mail.infolog mostra a seguinte linha ao fazer mail external:

Jun 19 16:07:31 linuxmachine postfix/smtp[2299]: B562720039C: to=<[email protected]>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=2.6, delays=0/0/0/2.5, dsn=2.6.0, status=sent (250 2.6.0 <[email protected]> [InternalId=162971] Queued mail for delivery)

Responder1

A solução óbvia é colocar $myhostnameou linuxmachine.example.com no mydestinationparâmetro.

explicação

Antes da modificação da configuração, aqui está o evento em segundo plano após o envio do email viamail external

  • Postfix recebe e-mail via serviço de coleta.
  • Porque o destinatário não possui partes de domínio e (por padrão) parâmetroappend_at_myorigintem valor yes, então o postfix irá reescrever o endereço do destinatário para[e-mail protegido](você pode ver isso em mail.log acima)
  • Por padrão, o parâmetromydestinationtem valor $myhostnameou linuxmachine.example.com, então o postfix aplica o mapa de alias em /etc/aliases.
  • Alias ​​Postfix[e-mail protegido]para[e-mail protegido]e envie-o para o host do Gmail

Agora, após a modificação da configuração, é isso que acontece

  • Postfix recebe e-mail via serviço de coleta.
  • Porque o destinatário não possui partes de domínio e (por padrão) parâmetroappend_at_myorigintem valor yes, então o postfix irá reescrever o endereço do destinatário para[e-mail protegido](você pode ver isso em mail.log acima)
  • Agora mydestinationnão contém $myhostnamelinuxmachine.example.com, então o postfix não aplicará alias em/etc/aliases

informação relacionada