Como posso forçar o sendmail a usar SMTP em vez de retransmissão interna?

4

Eu tenho um servidor web que estava na lista negra de enviar e-mail porque estava respondendo a SMTP HELO com localhost.localdomain em vez do nome de domínio do meu servidor (vamos chamá-lo example.com ). Consegui que o servidor respondesse ao HELO com example.com removendo localhost.localdomain do meu arquivo /etc/hosts . No entanto, agora, toda vez que tento enviar e-mail para um endereço com o mesmo nome de domínio, o sendmail está tentando entregar a mensagem localmente em vez de enviá-la via SMTP para nosso servidor de e-mail real (hospedado na Rackspace).

Segui o conselho aqui: Por que o sendmail está aceitando e-mails para nomes de host não presentes no arquivo local-host-names? e executou

echo '$=w' | sendmail -bt

E tenho:

[mail]
[162.243.XX.XXX]
mail
[mail.example.com]
mail.example.com
localhost
[127.0.0.1]
example.com

Pelo que entendi, o sendmail considera todos esses domínios locais. Eu defino DontProbeInterfaces=True no meu arquivo sendmail.cf . Agora quando eu corro

sendmail -bt
$=w

Eu recebo:

localhost
[127.0.0.1]
example.com

Eu também tentei remover example.com de /etc/mail/local-host-names , mas o sendmail ainda acha que example.com é local. Como posso fazer com que o sendmail pare de tentar a entrega de correio local para example.com endereços de e-mail?

EDITAR:

echo '$j' | sendmail -bt

produz

example.com

EDITAR:

Eu tentei alterar o nome do host de example.com para example , mas agora minha resposta SMTP HELO é localhost e demora vários minutos para enviar um e-mail. De acordo com isto: link sendmail espera que hostname seja o FQDN, mas me disseram que ele deveria nunca ser o FQDN. Qual é?

Isso está no meu mail.log :

Jul 28 16:40:01 localhost sm-msp-queue[1679]: My unqualified host name (localhost) unknown; sleeping for retry
Jul 28 16:41:01 localhost sm-msp-queue[1679]: unable to qualify my own domain name (localhost) -- using short name
    
por Ben Harold 28.07.2015 / 18:06

3 respostas

0

Depois de ver o comentário de @poige, minha sanidade foi restaurada:

Remover sendmail . Instale postfix . Há um bom tutorial aqui: link

Em seguida, edite /etc/postfix/main.cf e remova o nome de domínio totalmente qualificado do parâmetro mydestination .

    
por 29.07.2015 / 18:55
5

Corrija o nome do host do seu servidor. Nenhum servidor deve ter um nome de host igual ao nome de domínio sem cobertura ; Este é apenas um dos muitos problemas que ocorrem quando você faz isso.

    
por 28.07.2015 / 19:55
3

No seu caso, o Sendmail adiciona automaticamente "este nome de host (email)" ( $j ) à lista de domínios de email locais ( $=w ). O Sendmail usa o nome informado por hostname --fqdn .

Correções recomendadas:
Não use o "domínio nomeado" como nome de host (como sugerido em Michael resposta)
OR
Alterar nome usado pelo sendmail como "este nome de correio do host"

    
por 28.07.2015 / 20:02

Tags