#! /bin/bash

# Auteur : Jose-Marcio Martins da Cruz
#          Jose-Marcio.Martins@mines-paristech.fr
# Date   : 02 Fev 2010
#
# Description : Ce script liste toutes les adresses
#               valides dans un serveur de mail
#               sendmail
#
# Enumerez les fichiers d'aliases
ALIASES="/etc/mail/aliases.db /etc/mail/sympa_aliases.db"
VUTABLE=/etc/mail/virtusertable.db

#
# Les domaines pour qui ce serveur accepte du mail
DOMAINS="domain.fr domain.org"


cp /dev/null /tmp/a.tmp

for file in $ALIASES
do
  echo "* Dumping file : $file"
  if [ -f $file ]
  then
    makemap -u hash $file | awk '{print $1}' >> /tmp/a.tmp
  else
    echo "* ERREUR : $file n'existe pas"
  fi
done

echo "* Dumping table passwd"
getent passwd | awk -F: '{print $1}' >> /tmp/a.tmp

cp /dev/null /tmp/b.tmp
for domain in $DOMAINS
do
  echo " Ajout de la partie domaine pour : $domain"
  sed s/$/@$domain/  /tmp/a.tmp >> /tmp/b.tmp
done

if [ -f $VUTABLE ]
then
  echo "* Dumping $VUTABLE"
  makemap -u hash $VUTABLE | awk '{print $1}' >> /tmp/b.tmp
fi

sort /tmp/b.tmp | uniq > /tmp/users.txt

rm -f /tmp/a.tmp /tmp/b.tmp

