Exim logging helo_data de saída

0

Eu tenho um servidor de e-mail exim que é usado para vários sites. Ele usa uma string de host diferente para helo_data para cada site que serve. O DNS e o rDNS para cada string de host aplicável estão configurados corretamente.

Eu quero estar logado no exim mainlog que a string do host foi usada para cada email enviado.

Isso é possível e, se não, quais são minhas opções para saber qual string de host foi usada no HELo por e-mail?

Obrigado

    
por Radmilla Mustafa 27.03.2011 / 21:16

3 respostas

1

Se você puder decidir sobre os dados do helo no estágio da ACL, você poderá atribuí-los a uma variável $acl_m_... ( $acl_m_outbound_helo ), que pode ser referenciada em qualquer lugar da vida útil da mensagem. Você provavelmente quer fazer isso no DATA ACL, baseado inteiramente no remetente, não no destinatário.

Você pode usar log_message na mesma ACL para registrar o valor; ele irá para o mainlog junto com o id da mensagem Exim, para correlação. Em seguida, no transporte, você apenas faz referência ao mesmo $acl_m_outbound_helo para usar na conexão.

    
por 27.03.2011 / 22:48
0

Infelizmente, não existe um método embutido para registrar a variável helo_data no arquivo mainlog.

O método que eu provavelmente usaria seria para adicionar um gancho em algum lugar dentro do caminho da mensagem para registrar os dados que estou procurando para outro arquivo com alguma referência para apontar de volta para as entradas no arquivo mainlog (diga a mensagem ID), ou eu configuraria um roteador & transporte por site. O transporte usado para enviar o e-mail é registrado no arquivo mainlog como o valor T = meu_transporte.

Para o log personalizado, consegui fazer algo semelhante para inserir os detalhes do email recebido em um banco de dados usando o valor condition = no roteador. Você pode usar a expansão ${run{<command> <args>}} string para conseguir isso:

condition = ${run{/path/to/interpreter /path/to/custom/logging/script $sender_domain $message_exim_id}{1}{0}}

(não testado)

Esse pequeno fragmento no roteador executará o script /path/to/custom/logging/script usando o interpretador /path/to/interpreter (/ bin / sh, / usr / bin / perl, qualquer que seja) passando o nome de domínio do remetente e o ID da mensagem Exim .

É bastante pesado, por isso não seria ideal em um servidor de uso pesado, mas pode funcionar ...

    
por 27.03.2011 / 22:30
0

Eu sugiro que você dê uma olhada no mecanismo de eventos

O exemplo pode ser adaptado para registrar uma mensagem em vez de salvar um registro no banco de dados.

    
por 23.05.2018 / 21:27

Tags