Como desativo a notificação de não entrega (e-mail devolvido) no Postfix?
Eu configurei o Postfix 3.8.1 com rspamd 3.6. A filtragem de spam está funcionando
admin@host123456:~ $ wget http://spamassassin.apache.org/gtube/gtube.txt -P /tmp
admin@host123456:~ $ sendmail [email protected] < /tmp/gtube.txt
resulta em
root@host123456:~ # egrep 4873D80B30 /var/log/mail.log
2023-10-28T21:41:00.297436+02:00 host123456 postfix/pickup[151929]: 4873D80B30: uid=1000 from=<admin>
2023-10-28T21:41:00.301825+02:00 host123456 postfix/cleanup[151958]: 4873D80B30: message-id=<[email protected]>
2023-10-28T21:41:00.352027+02:00 host123456 postfix/cleanup[151958]: 4873D80B30: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Gtube pattern; from=<[email protected]> to=<[email protected]>
2023-10-28T21:41:00.359127+02:00 host123456 postfix/cleanup[151958]: 4873D80B30: to=<[email protected]>, relay=none, delay=0.07, delays=0.07/0/0/0, dsn=5.7.1, status=bounced (Gtube pattern)
2023-10-28T21:41:00.365073+02:00 host123456 postfix/bounce[151960]: 4873D80B30: sender non-delivery notification: 58B2E81258
Como você pode ver na última linha de log, o postfix envia de volta uma notificação de não entrega ao remetente original (neste caso, admin@host123456). Como configuro o Postfix para simplesmente rejeitar emails de spam?
O problema é que não há problema no seu caso. Seu teste usa o chamado envio local , que é injetado no Postfix por meio de seu
pickup
serviço, ou seja, ignora totalmente o SMTP. É o caminho "Local" no primeiro diagrama da Visão Geral da Arquitetura Postfix .A ressalva aqui é que, como não há estágio SMTP, não há lugar onde seja possível rejeitar a mensagem antes de colocá-la na fila. Este
sendmail
comando é um aplicativo sem privilégios de nível de usuário. Ele apenas cria um arquivo em um local específico onde qualquer pessoa pode escrever e de ondepickup
o daemon (privilegiado) o obtém. O envio já ocorreu no momento da criação do arquivo e não há como sinalizar nenhum problema ao usuário a não ser enviar uma notificação de não entrega.A tecnologia Milter apareceu pela primeira vez no pacote Sendmail (não deve ser confundido com
sendmail
comando; Sendmail é um MTA completo como o Postfix, e contém sua própria implementação do comando sendmail que doou o nome para todo o pacote) e destina-se a filtrar mensagens ao vivo durante SMTP ativo session , então requer um. É o conjunto de funções que são chamadas em cada estágio da sessão (por exemplo, após a conexão e após cada comando do usuário e após cada pedaço da mensagem durante o estágio DATA), e cada uma delas pode rejeitar uma mensagem a qualquer momento. Para mensagens que chegaram por outros meios (como envio local), o Postfix pode simulara sessão SMTP para o milter funcionar corretamente invocando essas funções na ordem correta e com argumentos "sintéticos" supostamente corretos, mas ainda espera que tal milter nunca rejeite mensagens porque não há uma sessão SMTP real onde relatar uma rejeição. Se o seu filtro não SMTP tentar rejeitar, o Postfix considerará isso como um erro de configuração. O objetivo era assinar as mensagens geradas no servidor, não filtrá-las. Leia mais sobre isso no README do Milter .Você acabou de testar o caminho de código errado no Postfix, e não aquele que as mensagens recebidas levarão. Se você tentar entregar a mesma mensagem via SMTP, milter terá todo o direito de rejeitar a mensagem a qualquer momento e irá rejeitá-la antes da fila, portanto nenhuma notificação de não entrega será gerada.