Outra coisa a se observar são os scripts "perl" perl que costumam ser enviados para instalações CMS desatualizadas de terceiros. Eles geralmente têm seus próprios mecanismos de SMTP, que evitam o log de email local. Felizmente, isso é relativamente fácil de parar com o iptables:
# Allow the root user to initiate outbound connections to port 25
iptables -A OUTPUT -m owner --uid-owner root -p tcp --dport 25 -j ACCEPT
# Allow the mail user to initiate outbound connections to port 25
# This presumes your mail server is running as mail
iptables -A OUTPUT -m owner --uid-owner mail -p tcp --dport 25 -j ACCEPT
# Allow anyone to connect to port 25 on localhost
iptables -A OUTPUT -p tcp -d 127.0.0.1 --dport 25 -j ACCEPT
# Allow anyone to connect to local relay server
iptables -A OUTPUT -p tcp -d relay.example.com --dport 25 -j ACCEPT
# Block all other outbound connections to port 25
iptables -A OUTPUT -p tcp --dport 25 -j REJECT
Isso forçará todos os e-mails a serem enviados por meio do localhost ou de um retransmissor local, e somente o usuário de e-mail e o usuário root poderão enviar e-mails. Isso pressupõe que você está executando o Linux e que o módulo ipt_owner é disponível.
Além disso, há o patch de cabeçalho de e-mail para php aqui que colocará o nome do script enviando o email nos cabeçalhos. Tanto quanto eu estou preocupado, deve ser parte do núcleo do PHP, mas infelizmente não é.