Exim: altera o endereço do remetente ao enviar e-mails fora da rede local

6

Temos uma configuração exim em funcionamento em um site, onde os usuários podem enviar e receber e-mails. Estamos tentando configurar um servidor para enviar alguns avisos e erros usando o email para um endereço que esteja fora da rede local.

O problema é:

O programa que envia os e-mails os envia usando o nome de usuário sob o qual ele é executado e o nome do host local do servidor. Isso faz com que os e-mails tenham um remetente de formato: [email protected]. O Exim envia esses e-mails para o servidor SMTP do ISP, que rejeita os e-mails porque têm um remetente ilegal ou não verificável (o endereço interno).

Estou pensando em configurar o exim para reescrever o remetente quando:

  • o domínio do remetente está na rede local
  • o domínio do destinatário está fora da rede local

Eu tentei configurar algum tipo de reescrita na configuração do exim, mas não consegui fazê-lo funcionar. Eu mostraria o que tentei, mas fiquei sem tempo na última visita ao site e tive que reverter para a versão original perdendo todas as alterações que tentei.

    
por Esa Varemo 26.10.2013 / 13:20

3 respostas

8
begin rewrite
[email protected]   [email protected]   SFfrs

As bandeiras têm os seguintes significados:

  1. S - Faz todas as reescritas no horário do SMTP. Isso significa que todos os sinalizadores a seguir são feitos imediatamente, pois os dados aos quais eles se aplicam estão chegando, não sendo atrasados até mais tarde.
  2. F - Reescreva o envelope do campo.
  3. f - Reescreva o campo de cabeçalho De:
  4. r - Reescreva o campo de cabeçalho Reply-To:
  5. s - Reescreva o campo de cabeçalho Remetente-Para:

Leia Capítulo 31 da Especificação do Exim para mais detalhe na reescrita da mensagem

    
por 26.10.2013 / 16:33
8

O arquivo /etc/email-addresses deve tratar do problema. Esta é uma parte padrão da distribuição do Exim. Você precisará configurar um registro para cada usuário local que envia e-mail.

Tente uma linha para /etc/email-addresses como:

 myapp:   [email protected]

No seu servidor MX, adicione um alias como:

 donotreply:    :blackhole:

Use um cabeçalho Reply-to: para permitir que o destinatário responda à mensagem.

O arquivo /etc/email-addresses é usado com o seguinte código de reescrita, que deve estar no início da seção rewrite do arquivo de configuração.

*@+local_domains "${lookup{${local_part}}lsearch{/etc/email-addresses}\
                  {$value}fail}" Ffrs
    
por 26.10.2013 / 19:43
1

/etc/email-addresses é útil quando você precisa associar apenas um endereço de e-mail por nome de usuário. No entanto, se o usuário precisar enviar e-mails com vários endereços, você terá que modificar /etc/email-addresses a cada vez e, inevitavelmente, acabará usando o endereço incorreto.

Outra abordagem é enviar o email usando o comando exim4 e sua opção -f :

$ cat email|/usr/sbin/exim4 -f [email protected] [email protected]

Observe que, para a opção -f funcionar, você precisa que seu usuário esteja em usuários confiáveis do exim ou exim para aceitá-lo como um remetente não confiável autorizado.

No meu caso, o último foi o padrão, graças a esse curinga em /etc/exim4/conf.d/main/02_exim4-config_options :

untrusted_set_sender = *

A outra solução é adicionar a seguinte linha em /etc/exim4/conf.d/main/00_local_settings (assumindo a configuração de divisão do exim e criá-la se ela ainda não existir):

MAIN_TRUSTED_USERS = yourusername

Ambas as opções precisam de um recarregamento da configuração do exim. Sob o Debian:

# dpkg-reconfigure exim4-config
    
por 23.03.2017 / 11:19

Tags