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)