Postfix atrás de um relé para manipular emails de entrada e saída com / etc / aliases

1

Estou tentando configurar o postfix em uma máquina Linux (Debian 8 com o Postfix 2.11). Mas eu tenho alguns problemas fazendo com que /etc/aliases funcione corretamente.

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

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

Para que isso funcione, preciso alterar a configuração mydestination em main.cf . Mas assim que faço isso, o Postfix para de retransmitir mensagens quando seu alias de /etc/aliases é usado. Somente digitando o nome longo funciona. Esta é a minha configuração (eu 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 essa configuração, o fluxo 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 em main.cf , então mail external enviará uma mensagem para [email protected] (que chega), mas as mensagens recebidas para [email protected] não serão enviadas pelo canal. Então, apenas o contrário.

O que devo inserir em main.cf ou /etc/aliases para poder enviar e-mails de minha máquina Linux usando nomes abreviados e, ao mesmo tempo, receber mensagens em um canal? Tudo que eu quero é que um endereço especial seja analisado na máquina linux e que os usuários do Linux possam enviar e-mails para endereços selecionados usando nomes abreviados como "luxory" (em vez de ter que digitar endereços de e-mail completos).

Atualização: postconf -n output:

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 de /var/log/mail.info ao fazer mail external (e-mail para alias) com mydestination definido 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, depois de alterar mydestination de acordo com a resposta proposta, o mail.info log 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)
    
por Foo Bar 17.06.2015 / 17:34

1 resposta

3

A solução óbvia é colocar $myhostname ou linuxmachine.example.com no parâmetro mydestination .

explicação

Antes da modificação da configuração, aqui o evento de segundo plano depois que você envia um email via mail external

  • O postfix recebe e-mail por meio do serviço de retirada.
  • Porque o destinatário não tem partes de domínio e (por padrão) o parâmetro append_at_myorigin valor yes , então o postfix irá reescrever o endereço do destinatário para [email protected] (você pode vê-lo no mail.log acima)
  • Por padrão, o parâmetro mydestination tem valor $myhostname ou linuxmachine.example.com, então o postfix aplica o mapa de alias em /etc/aliases .
  • O postfix aliased [email protected] para [email protected] e, em seguida, envia-o para o host do Gmail

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

  • O postfix recebe e-mail por meio do serviço de retirada.
  • Porque o destinatário não tem partes de domínio e (por padrão) o parâmetro append_at_myorigin valor yes , então o postfix irá reescrever o endereço do destinatário para [email protected] (você pode vê-lo no mail.log acima)
  • Agora, mydestination não contém $myhostname ou linuxmachine.example.com, portanto, o postfix não aplicará o alias em /etc/aliases
por 19.06.2015 / 12:00