smtpd_recipient_restrictions funciona, mas nem sempre

1

Eu tenho POSTFIX configurado para filtrar determinados endereços de e-mail. O arquivo main.cf contém:

smtpd_recipient_restrictions =
    check_recipient_access hash:/etc/postfix/blacklist,
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    permit

Quando tento enviar um e-mail para um dos endereços da lista negra, recebo o erro 554 5.7.1 Access denied. como deveria. Além disso, quando tento enviar com o telnet, a mensagem é bloqueada. No entanto, este servidor tem um software de email instalado que é baseado em php e usa o swiftmailer para enviar mensagens. Quando tento enviar uma mensagem usando este software, qualquer mensagem para um dos endereços bloqueados é transmitida.

Qual poderia ser o motivo disso? Como posso rastreá-lo e depurar isso?

    
por koljanep 13.02.2015 / 21:37

1 resposta

4

Existem dois métodos de envio de mensagens, se a máquina local executar um servidor SMTP.

Você pode usar o protocolo smtp (como qualquer outro cliente remoto), conectar-se à porta 25 do localhost e fazer toda a conversa do smtp. Neste caso, as restrições do cliente smtpd se aplicam.

Ou você apenas executa o binário sendmail com argumentos apropriados. Nesse caso, você não usa o protocolo SMTP, portanto, as restrições não são aplicadas.

Por exemplo, a função php mail () no linux usará o segundo método, usando como padrão o comando sendmail -t -i , ou o que estiver configurado em php.ini as sendmail_path

O Swiftmailer suporta ambos os métodos, para que você possa alterar o código para usar o smtp em vez do sendmail. Veja aqui link

    
por 14.02.2015 / 08:27