Como reinjetar mensagens digitalizadas na fila usando sendmail

Como reinjetar mensagens digitalizadas na fila usando sendmail

Gostaria de passar as mensagens recebidas virtual_transportpara um transporte spamassassin(main.cf:) virtual_transport=spamassassine, em seguida, reinjetar as mensagens digitalizadas no postfix usando o sendmail.

O transporte fica assim:

spamassassin unix   -    n     n   -   -    pipe
    flags=hu user=vmail:mail argv=/usr/bin/spamc -u ${recipient} -e /usr/sbin/sendmail -f ${sender} ${recipient}

Isto deveria ser possível de acordo com odocumentação postfix:

Sites de alto volume devem evitar o uso de filtros de conteúdo "simples" que reinjetam mensagens digitalizadas via Postfix sendmail(1) e postdrop(1).

Com minha chamada sendmail atual /usr/sbin/sendmail -f ${sender} ${recipient}, o e-mail retorna para a fila e depois volta para spamassassin e assim por diante.

Pelo que entendi da documentação do postfix, as mensagens entregues usando o postfix sendmailsão descartadas no maildropdiretório e coletadas usando pickup. Tentei anexar um -o virtual_transport=dovecotao transporte de coleta para evitar a fila, mas isso não ajudou. (Essas opções só podem ser anexadas a transportes SMTP, suponho).

Como posso reinjetar mensagens digitalizadas com spamassassin de volta na fila para entrega final sem causar um loop?

Responder1

Como posso reinjetar mensagens digitalizadas com spamassassin de volta na fila para entrega final sem causar um loop?

NÃO, você não pode

Explicação

Eu entendo o motivo pelo qual você virtual_transportenvia e-mails para o Spam Assassin. Você deseja apenas digitalizar o e-mail destinado ao seu arquivo virtual_mailbox_domain. Infelizmente não segue orecomendado configuração para filtro de conteúdo simplesisso usando content_filterparâmetro em vez disso virtual_transport.

Por que não consigo passar virtual_transportpara pickup ou smtpd?

Geralmente, aqui a jornada do e-mail através do código postfix

Input  --> cleanup --> qmgr --> Output 
*smtpd                          *local     
*pickup                         *virtual
*qmqpd                          *smtp
                                *lmtp
                                *pipe

No cleanupdaemon, o postfix irá 'rotear' seu e-mail, sejam eles pertencentes a transportes virtuais, locais, smtp ou outros. Uma exceção é quando content_filterum parâmetro não em branco foi passado para o serviço de entrada ( smtpd, pickup, qmqpd). Quando isso acontecer, o postfix substituirá a rota da mensagem e enviará o email para ela content_filter.

Outra observação: por padrão, todo serviço postfix foi obtido pelo valor do parâmetro, main.cfa menos que você o substitua usando-o parâmetro = valor sobre master.cf. Mas nem todos os parâmetros são man 5 postconfusados ​​por um serviço. Por exemplo,filtro_de_conteúdousado apenas por pickup, smtpde qmqpdentão você pode colocar-o content_filter=amavis:[127.0.0.1:10025neles. Outro exemplo, não é sensato colocar-o smtp_bind_addressin smtpdpois este parâmetro é usado apenas em smtpserviço.

O mesmo argumento pode ser aplicado à sua pergunta, "por que posso passar-o transporte_virtualem pickup?"

Então aqui estão as diversas alternativas para sua configuração

  • Use content_filterconforme explicado na documentação do postfix. A desvantagem é que você também verifica o e-mail retransmitido fora do seu domínio.

  • Usarcontent_filter via tabela ACCESS e ação FILTER. Desta forma, você pode verificar seletivamente o e-mail recebido. Infelizmente você deve alistar-se virtual domainnovamente nessa mesa. . Você pode evitá-lo colocando cuidadosamente a tabela ACCESS depois de permit_mynetworks, permit_sasl_authenticated. Dessa forma, os e-mails enviados já serão permitidos e você verificará apenas os e-mails recebidos. (Crédito ao comentário do OP:))

  • UsandoPostfix Múltipla Instância. Desta forma, você pode manter o virtual_transportparâmetro e o spamc injetará o email na sua segunda instância. E então você pode definir diferentes virtual_transportem instâncias diferentes. Mas é um pouco exagerado se você quiser manter sua configuração simples.

informação relacionada