Qual é a maneira de filtrar e-mails através do daemon spamassassin (em vez de lançar o aplicativo sempre que um e-mail é recebido) antes de ser passado para o meu script? Acho que é uma má prática fazer isso do jeito que eu faço agora.
Veja amavisd-new , que está escrito em perl. Ele fará o que você está procurando, integra-se em nível de rede (caso deseje) e também oferece verificação antivírus. A maioria das principais distribuições Linux fornece como um pacote pré-construído. A única coisa que você precisa se preocupar é que algumas das distros usarão uma versão obsoleta que tem um bug ocasional. A maioria desses bugs fará com que o amavis ceda ou termine; então, se são, digamos, 3 versões mais antigas do que o site oficial, eu consideraria seriamente gerenciar esse pacote manualmente.
Existe uma maneira de limitar quantos e-mails o postfix passa ao meu script ao mesmo tempo? Eu não quero ter 10 instâncias do meu script sendo executadas ao mesmo tempo.
Você está falando sobre limitação de taxa. Dado o tamanho "pequeno" do servidor, eu definiria o próprio limitador de taxa do postfix para algo como 3-6 e-mails por minuto, em vez de configurá-lo no lado da digitalização. Se você tentar aceitar a entrega de tudo, uma tempestade de spam irá simplesmente entupir suas filas, e você acabará com um backlog de qualquer maneira.
Como eu poderia transformar meu script em um daemon? Isso tornaria as coisas mais rápidas?
Toneladas! Não posso ajudá-lo a esse respeito, mas ter seu script pré-lançado eliminaria uma sobrecarga significativa.