Caso ocorra de alguém não receber um e-mail, podemos pesquisar nos logs do maillog para saber se o amavis filtrou o e-mail como spam. Para facilitar essa busca, o script abaixo pode nos ajudar. Ele busca em todos os arquivos /var/log/maillog* a ocorrência da dupla "emailOrigem" "emailDestino" e retorna seus respectivos arquivos spam contidos em /var/virusmails (caso existam). Salve o script abaixo em um arquivo com permissão de execução e execute da seguinte forma:
script EMAIL_ORIGEM EMAIL_DESTINO
#!/bin/bash
###
# Script para recuperar um spam contido em /var/virusmail
#
# param1 remetente do e-mail perdido
# param2 destinatario do e-mail perdido
#
# @author Andre Oshiro Barcelos
# @version 20101122
###
# constantes
MAILLOG="/var/log/maillog"
SPAMDIR="/var/virusmails"
# recebendo variaveis
remetente="$1"
destinatario="$2"
#validando variaveis
if [ ! -n "$remetente" ]; then
echo -n "Informe o remetente: "
read remetente
fi
if [ ! -n "$destinatario" ]; then
echo -n "Informe o destinatario: "
read destinatario
fi
#main
#pesquisando:
# filtrando todos os registros que contem o remetente e
# filtrando todos os registros que contem o destinatario e
# pega a string que precede a palavra 'quarantine: '
aQuarentine=(`cat "$MAILLOG"* | grep 'quarantine' | grep "$remetente" 2> /dev/null | grep "$destinatario" 2> /dev/null | sed 's/.*quarantine: \([[:alnum:]\.+=-]*\),.*/\1/'`)
#se nao foi encontrado
if [ ! -n "$aQuarentine" ]; then
echo "ERRO: a dupla nao foi encontrada em quarentena"
exit 1
fi
echo "A dupla foi encontrada no(s) seguinte(s) spam(s) em quarentena: "
for i in "${aQuarentine[@]}"
do
echo "$SPAMDIR/$i"
done