#!/bin/sh
#
# This script generate whitelist for all your vpopmail domains, alias
# and ezmlm mailing-list for spamcontrol RECIPIENT feature.
# http://www.fehcom.de/qmail/spamcontrol
# David du SERRE-TELMON <david@xinus.net>
# 06/30/2004

vpopmaildir="/home/vpopmail"
qmaildir="/var/qmail"
dstfile="${qmaildir}/users/recipients"

rm -f $dstfile.tmp

for domain in `cat ${qmaildir}/users/assign | cut -d: -f 2 | grep -v -w . | sort | uniq`; do
  if [ -d ${vpopmaildir}/domains/${domain} ]; then
    for mail in `cat ${vpopmaildir}/domains/${domain}/vpasswd | cut -d: -f 1`; do
      echo "${mail}@${domain}" >> ${dstfile}.tmp
    done
    cd ${vpopmaildir}/domains/${domain}
    for fwd in `ls -a -1 .qmail-* | sed 's/\:/\./' | sed 's/\.qmail-//g' | grep -v -w default`; do
      if [ $fwd != "default" ]; then
        if echo ${fwd} | grep "\-owner$" > /dev/null; then
          echo "${fwd}-owner@${domain}" | sed 's/\-owner//' >> ${dstfile}.tmp
          echo "${fwd}-help@${domain}" | sed 's/\-owner//' >> ${dstfile}.tmp
          echo "${fwd}-subscribe@${domain}" | sed 's/\-owner//' >> ${dstfile}.tmp
          echo "${fwd}-unsubscribe@${domain}" | sed 's/\-owner//' >> ${dstfile}.tmp
        else
          echo "${fwd}@${domain}" >> ${dstfile}.tmp
        fi
      fi
    done
  fi
done

rm -f ${dstfile}
mv ${dstfile}.tmp ${dstfile}
${qmaildir}/bin/qmail-recipients
