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)