E-mail de roteamento do domínio para o provedor externo

1

Eu tenho um servidor com nome de host e DNS example.com . Eu também tenho uma conta do Google Apps por [email protected] . Eu tenho meus registros MX configurados corretamente e posso enviar e receber e-mails para e de [email protected] com meu e-mail pessoal.

No servidor example.com , eu tenho algum código enviando e-mail usando o sendmail para [email protected] . Eu não tenho nenhum smtp configurado com o sendmail. Posso enviar mensagens do servidor example.com para [email protected] , mas quando tento enviar um email do servidor example.com para [email protected] , recebo o seguinte erro em /var/log/maillog :

... while talking to [127.0.0.1]:
>>> DATA
<<< 550 5.1.1 <[email protected]>... User unknown
550 5.1.1 <[email protected]>... User unknown
<<< 503 5.0.0 Need RCPT (recipient)

Eu imagino que isso é porque o sendmail está recebendo o email para [email protected] , e indo "ah-ha! eu sou example.com! Eu só preciso enviá-lo para o usuário neste servidor." em vez de olhar para os registros MX e ver que ele precisa encaminhá-los para os servidores do Gmail.

Como posso dizer ao sendmail para encaminhar todas as mensagens para os servidores do Gmail, independentemente do domínio?

Nota: os domínios foram alterados para example.com para proteger os inocentes.

    
por Drew 21.07.2014 / 08:22

2 respostas

2

O problema é que, como você deduziu, o nome do host do seu servidor é example.com , fazendo com que o MTA nesse servidor pense que qualquer mensagem de e-mail para @example.com deve ser entregue localmente.

A solução rápida é simplesmente alterar o nome do host, por exemplo, chame seu servidor www.example.com .

Como alternativa, você usa o recurso MAIL_HUB do sendmail para redirecionar o correio local para outro servidor: no conjunto de arquivos de macro sendmail.mc:

define('MAIL_HUB', 'mailer:servername')

Com esse nome de servidor substituído pelo nome do host do seu registro MX principal. Isso redirecionará as mensagens enviadas do seu servidor para <username>@<hostname> , ou seja, [email protected] para o servername.

A resposta real para a pergunta: "Como posso dizer ao sendmail para encaminhar todas as mensagens para os servidores do gmail, independentemente do domínio?" é:
Você não quer isso. O Gmail não é um retransmissor aberto e rejeitará qualquer item que não seja tratado localmente.

O recurso existe e é chamado de SMART_HOST no jargão do sendmail. Isso requer um servidor smtp de saída especificamente configurado para retransmitir para o seu endereço IP (intervalo), como o servidor SMTP de saída do seu ISP.

define('SMART_HOST', 'smtp.your.provider')dnl
    
por 21.07.2014 / 11:14
3
  1. Nomeie o host hostname.example.com (conforme relatado por hostname --fqdn ).
    O procedimento é dependente do sistema operacional / distribuição.

  2. Se example.com permanecer na lista de domínios de e-mail locais, desative a configuração automática da lista de domínios de e-mail locais.

Lista de verificação de domínios de email locais:
Como root execute

echo $=w | sendmail -bt

Removendo a configuração automática da lista de domínios de e-mail locais:
Em sendmail.mc, adicione a seguinte linha, recompile o sendmail.cf e reinicie / recarregue o daemon do sendmail

define('confDONT_PROBE_INTERFACES','True')   

Os domínios de e-mail locais podem ser explicitamente listados em /etc/mail/local-host-names .

    
por 21.07.2014 / 13:07