Estou tentando configurar postfix
em uma máquina Linux (Debian 8 com Postfix 2.11). Mas tenho alguns problemas para /etc/aliases
funcionar 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/aliases
eu 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 mydestination
configuraçã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.cf
enviarei mail external
um 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.cf
para /etc/aliases
poder 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 -n
saí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.info
ao fazer mail external
(mail para alias) com mydestination
conjunto 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 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)
Responder1
A solução óbvia é colocar $myhostname
ou linuxmachine.example.com no mydestination
parâ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âmetro
append_at_myorigin
tem valoryes
, 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âmetro
mydestination
tem valor$myhostname
ou 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âmetro
append_at_myorigin
tem valoryes
, 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
mydestination
não contém$myhostname
linuxmachine.example.com, então o postfix não aplicará alias em/etc/aliases