exim4 e diferentes HELO para todos os domínios no VPS

1

Digamos que eu tenha domain.com, domain2.com, domain3.com no mesmo VPS e todos enviem email, mas o Helo de todas as mensagens de todos os domínios é localhost, que é rejeitado por alguns provedores de email. Como fazer o exim4 configurar o helo para o nome de domínio de onde ele está enviando e-mail. Como se eu estivesse enviando e-mails de domain.com, helo deveria ser domain.com. Outra questão, esta coisa certa a fazer?

UPD mudei de ideia. Eu só quero configurá-lo para o FQDN da caixa.

    
por Igor Yavych 27.11.2012 / 14:47

3 respostas

3

O transporte smtp tem uma configuração helo_data . Por padrão, ele é definido como $ primary_hostname, e é por isso que o conselho da primeira pessoa funcionaria muito bem se você quisesse definir a configuração primary_hostname como um único nome de host válido. Já que você parece querer fazer com que o HELO tenha um nome de host dinâmico, você precisa adicionar um pouco de lógica para descobrir qual nome ele deve usar.

Em algum lugar da sua DATA acl, você pode detectar esses domínios específicos e definir uma variável. Este é um exemplo muito simples (você pode melhorar usando pesquisas de arquivos ou banco de dados):

warn  domains      = domain1.com : domain2.com : domain3.com
      set acl_m_special_dom = mail.$domain

Procure em seus registros para determinar qual transporte smtp está sendo usado para enviar este email. Edite esse transporte e adicione uma linha helo_data que examina essa variável de mensagem acl e ajusta o nome do host que o exim usará para HELO / EHLO com:

helo_data = ${if eq{$acl_m_special_dom}{}  \
                     {$primary_hostname}   \
                     {$acl_m_special_dom} }

O teste verifica se a variável está vazia. Se estiver vazio, usará $ primary_hostname. Mas, se não estiver vazio, deve ter sido definido na condição ACL acima, para que ele use esse nome de host no EHLO. Essa variável é uma variável por mensagem, portanto, ela é apagada entre cada mensagem (se várias mensagens estiverem descendo em uma conexão).

Você deve certificar-se de que qualquer nome de host usado aqui seja resolvido no DNS público (teste usando o DNS do Google) e que o IP resolvido também tenha um DNS reverso. O rDNS não precisa corresponder ao nome do host que você usa, mas ele precisa ser resolvido para algo . E se reverter a resolução para algo que pareça dinâmico como uma linha cablemodem ou dsl, provavelmente ainda será bloqueada ou adiada pela maioria dos provedores de email.

De volta à sua descrição, parece que você está usando o sistema de configuração dividida do Debian. Eles têm uma macro que irá variar o nome do host HELO com base no endereço IP do remetente que se conecta ao seu servidor exim. No entanto, isso não funcionará se o seu e-mail for originado de um servidor comum, o que significa que você precisa variar esse nome de host HELO com base no nome de domínio do remetente, conforme mostrado acima.

    
por 27.11.2012 / 19:58
1

A maneira "adequada" de fazer isso seria definir o "nome do host primário" do Exim para qualquer nome canônico completo e qualificado do seu host. Poucos servidores de correio remotos começarão a se importar com a parte do domínio no cabeçalho From: do e-mail, e a maioria não informa a parte do domínio do remetente do envelope se ele passar por coisas como a validação do SPF.

As etapas exatas para fazer isso dependem da sua instalação, mas parece que simplesmente configurando a variável de configuração primary_hostname do Exim para um FQDN que resolva o endereço IP público do seu host.

Você pode encontrar o link para ser útil.

    
por 27.11.2012 / 15:27
0

Esse padrão é o nome do host do servidor fornecido pelo uname e pode ser alterado via CLI com o comando "hostname". O BSD nos envia o arquivo hosts para armazenar o nome do host do sistema.

Se você quiser que o nome do host do servidor se identifique diferentemente do nome do helo (como eu gosto de fazer com um segundo endereço IP dedicado, junto com algumas outras configurações), você pode definir $ primary_hostname na configuração do exim. Como $ helo_data é padronizado como $ primary_hostname, isso abrange as configurações de envio e recebimento se $ helo_data for deixado no padrão.

Conhecendo essa variável, pode haver uma maneira de fazer uma tabela de pesquisa para obter a alteração da configuração por domínio usando essa configuração. Eu vi coisas em configurações como esta:

$ {if exists {/ etc / userdomains} {lsearch; / etc / userdomains} falha}

    
por 17.05.2016 / 17:45

Tags