Em algum servidor SMTP remoto, estou tentando enviar correio para recusar aceitar o HELO do meu servidor:
504 5.5.2 <localhost>: Helo command rejected: need fully-qualified hostname
Aparentemente, meu servidor Exim4 envia localhost
como seu FQDN. Pesquisando na net e em vários arquivos de configuração, aprendi que o valor enviado como FQDN durante o HELO é extraído da primary_hostname
variável de configuração.
Minha pergunta é: qual é a maneira correta de mudar essa variável em um sistema Debian? Eu acho que posso simplesmente codificar um valor dos arquivos de configuração do Exim4, mas IMHO parece fazer mais sentido se o valor corresponder automaticamente/etc/mailname
ou a algum outro nome de configuração centralizado.
Sinto que a resposta para minha pergunta pode ser encontrada neste texto no wiki do Debian :
O nome usado pelo Exim no EHLO / HELO é extraído da opção de configuração
primary_hostname
. A configuração padrão exim4 do Debian não está definidaprimary_hostname
. O Exim usa como padrão uname () para encontrar o nome do host. Se essa chamada retornar apenas um componente, gethostbyname () ou getipnodebyname () será usado para obter o nome completo do host.Se o seu Exim HELOs for localhost.localdomain, você provavelmente terá um / etc / hosts mal configurado, criado por algumas versões do instalador da Debian. Nesse caso, corrija seus / etc / hosts.
Infelizmente, não estou familiarizado o suficiente com a administração de servidores Linux para saber exatamente o que tudo isso significa :(
hostname -f
ainda relata "localhost". A parte sobre / etc / hosts na sua resposta parece com erros - como deve ser o primeiro registro?hostname -f
ainda relata "localhost", parece que a alteração em / etc / hostname fez o truque - agora posso entregar minhas mensagens. Eu ainda gostaria de ver a parte que falta do seu post embora :)/etc/hostname
normalmente não contém o FQDN nos sistemas Debian, apenas o nome abreviado do host./etc/hosts
pode ser127.0.0.2 mydomain.com myhostname
(127.0.0.2
funciona tão bem quanto127.0.0.1
, uma vez que o loopback é uma rede de classe A). Você provavelmente pode combinar as duas linhas em uma127.0.0.1 mydomain.com myhostname localhost
, maslocalhost
é um nome de host canônico para127.0.0.1
, não é? Tudo isso considerando que você tem o nome do host, não o FQDN como nome do host. Além disso, a mudança/etc/hostname
não entra em vigor imediatamente, você precisahostname myhostname
. Ou reinicie o servidor.Se você usar um único arquivo de configuração, defina a variável PRIMARY_HOST_NAME para o nome desejado:
Por exemplo, em /etc/exim4/exim4.conf:
ou defina
MAIN_HARDCODE_PRIMARY_HOSTNAME
em update-exim4.conf.conf se você estiver usando uma configuração de arquivo dividido.Para estar seguro, reinicie o exim.
fonte
HELO 'mybox.mydomain.com'
quebras de envio de emails para o Google, talvez outros.update-exim4.conf
após alterar a configuração. E geralmente não é necessário reiniciar depois disso.exim
geralmente parece notar as alterações na configuração sem recarregar. Mas é sem dúvida mais seguro recarregar, pois suponho que o daemon em si não releia a configuração até recarregar. Então, você faz parecer que/etc/exim4/exim4.conf
pode conter apenas a linha acima , mas no momento em que cria o arquivo/var/lib/exim4/config.autogenerated
é ignorado .../etc/exim4/exim4.conf.localmacros
para dividir/etc/exim4/conf.d/main/000_localmacros
(os arquivos nomain
diretório são processados primeiro). E executeupdate-exim4.conf
+systemctl reload exim4
depois de fazer alterações.O nome do host principal é solicitado durante a instalação do exim4. Você pode executar o comando
para seguir as instruções novamente.
Até onde eu sei, se você já estiver usando a 'configuração dividida' (muitos pequenos arquivos em /etc/exim4/conf.d) e optar por continuar com isso quando solicitado, o dpkg-reconfigure não deve sobrescrever nenhum dos suas alterações de configuração existentes, exceto as configurações solicitadas, mas, como sempre, faça um backup primeiro para garantir a segurança.
fonte
/etc/mailname
,. Por padrão , é usado para qualificar endereços não qualificados . Os que consistem apenas no nome de usuário. Adicionando nome de domínio de/etc/mailname
. O endereço resultante é usado noFrom
cabeçalho.A
primary_hostname
variável é preenchida de acordo com o nome de domínio totalmente qualificado (FQDN) do sistema. No Debian e sistemas relacionados, isso geralmente é formado usando o conteúdo dos arquivos/etc/hostname
e/etc/hosts
. O ficheiro de nome da máquina deve conter o nome de host curto (por exemplofoo
), e o ficheiro de hospedeiros deve conter uma entrada resolverfoo
emfoo.bar.baz
, ou seja, com o seu nome de host sufixo domínio (normalmente combinando uma entrada de DNS).A saída do comando
hostname
(sem nenhum parâmetro) retornará o primeiro e ahostname -f
saída retornará o último.O arquivo hostname normalmente é preenchido na instalação e o arquivo hosts pode ser editado para ter um outro registro ao lado dos registros localhost padrão - ele deve estar no formato:
As três colunas devem ser separadas por espaços ou tabulações, não importa. O endereço IP pode ser 127.0.0.1, assim como o host local, mas a parte do nome do host corresponde ao nome do host do sistema e a parte do meio deve ser o FQDN, ou seja, o nome do host com um sufixo de domínio.
Para verificar se a linha está funcionando, basta executar
hostname -f
e verificar se ela retorna o FQDN do seu servidor.Por fim, reinicie o Exim, por exemplo, com:
Depois você deve começar a vê-lo corretamente. Sua variável pode ser verificada executando:
(NB: Eu fiz isso originalmente como uma edição da resposta de 2009, mas ela foi rejeitada. O que eu estava consertando originalmente é: não havia necessidade de repetir o registro localhost padrão, apenas explique qual deveria ser a adição; explique quais O endereço IP pode ser usado; explique o que é FQDN; explique como verificar o próprio exim.)
fonte
/usr/sbin/exim4 -bP primary_hostname
não funciona Você pode verificar o nome do host HELO enviando um email de teste ao verificador de autenticação do port25 ou a qualquer outra caixa de correio na qual possa ver o original. Mais sobre isso aqui . Considere atualizar sua resposta.helo_data
é$primary_hostname
. Nos sistemas Debian, você pode substituí-lo usando aREMOTE_SMTP_HELO_DATA
variável, mas se você acabou de definir seu nome de host principal corretamente, isso não é necessário./etc/hosts
. E tudo o que peço é não considerar apropriado o que geralmente não é aceito.depois de adicionar a mesma string em / etc / hosts, o nome do host -f retornará seu FQDN
fonte
myhostname
vai para/etc/hostname
(seguido dehostname myhostname
). E127.0.0.1 mydomain.com myhostname.com localhost
vai para/etc/hosts
. Além disso, recarregueexim
apenas por precaução.Eu tenho o mesmo problema. Preciso alterar o nome do host do email, porque alguns emails falham quando foram enviados. Com este erro:
Então eu mudo para
/etc/exim.config
o parâmetro primary_hostnameAlgum código deste arquivo:
fonte
no WHM para o Exim Configuration Manager -> Editor Avançado
role para baixo até encontrar "Adicionar definições de configuração adicionais" (um grande botão azul) e clique nele.
na nova linha, adicione [primary_hostname] = [meudominio.com]
role para baixo e clique em Salvar.
fonte