#!/bin/sh
#
# $Log: vadddomain_handle.in,v $
# Revision 2.21  2022-11-05 21:12:54+05:30  Cprogrammer
# added vuserinfo of postmaster account
#
# Revision 2.20  2020-09-21 07:57:01+05:30  Cprogrammer
# added /usr/sbin for FreeBSD for chown command
#
# Revision 2.19  2020-05-26 11:21:29+05:30  Cprogrammer
# make spamignore writeable for roundcube
#
# Revision 2.18  2020-05-25 00:05:59+05:30  Cprogrammer
# use root:qmail permission for spamignore, nodnscheck
#
# Revision 2.17  2018-01-27 10:11:44+05:30  Cprogrammer
# updated comment
#
# Revision 2.16  2017-03-29 22:11:31+05:30  Cprogrammer
# add domain entry to nodnscheck
#
# Revision 2.15  2016-05-22 23:22:48+05:30  Cprogrammer
# fhs compliance
#
# Revision 2.14  2016-05-17 23:16:42+05:30  Cprogrammer
# set domain directory as set by configure
#
# Revision 2.13  2016-05-17 14:43:59+05:30  Cprogrammer
# use control directory defined by configure
#
# Revision 2.12  2016-05-16 22:31:19+05:30  Cprogrammer
# issue sighup to qmail-smtpd if tcpserver plugin has been configured to reload control files
#
# Revision 2.11  2014-04-15 23:17:29+05:30  Cprogrammer
# avoid grep if spamignore does not exist
#
# Revision 2.10  2013-08-03 20:22:25+05:30  Cprogrammer
# send sighup to qmail-send
#
# Revision 2.9  2013-07-21 16:08:49+05:30  Cprogrammer
# fix permission of spamignore
#
# Revision 2.8  2013-05-13 08:57:20+05:30  Cprogrammer
# use ./configure setting for indimail directory
#
# Revision 2.7  2013-04-29 22:52:31+05:30  Cprogrammer
# added domain to spamignore control file
#
# Revision 2.6  2013-03-05 23:40:27+05:30  Cprogrammer
# corrected header to X-Bogosity instead of received for spam filter rule
#
# Revision 2.5  2012-06-20 19:04:47+05:30  Cprogrammer
# fix for recursive emails when email sent to training ids
#
# Revision 2.4  2011-06-01 18:49:30+05:30  Cprogrammer
# added rule for filtering virus infected mails & putting them in quarantine folder
#
# Revision 2.3  2010-05-17 14:24:59+05:30  Cprogrammer
# create home directory for prefilt, postfilt
#
# Revision 2.2  2010-05-01 15:13:19+05:30  Cprogrammer
# added users prefilt, postfilt for pre & post filters
# added rule for moving spam mails to Spam folder
#
# Revision 2.1  2010-04-23 09:21:51+05:30  Cprogrammer
# post handle for vadddomain
#
#
# $Id: vadddomain_handle.in,v 2.21 2022-11-05 21:12:54+05:30 Cprogrammer Exp mbhangui $

# send sighup to inlookup service to reload domains
(
/bin/ls /service*/qmail-smtpd.*/variables/PLUGIN*init | sed s'{/variables/.*{{'g 
/bin/ls -d /service*/inlookup.* /service*/qmail-send.*
) | while read line
do
	echo "Sending SIGHUP to $line"
	/usr/bin/svc -h $line
done
# print domain information
/usr/bin/vdominfo $1

# create user for bogofilter
echo "Creating standard users for spam filter (bogofilter)"
for i in ham spam register-ham register-spam
do
	/usr/bin/valias -i '&'"B"$i $i@$1
done
for i in prefilt postfilt
do
	/usr/bin/vadduser -d -e $i@$1  xxxxxxxx
done

# create rule for moving spam, virus emails to folders
echo "creating rules for spam, virus detected emails"
/usr/bin/vcfilter -i -t  spamFilter -c 3 -k "Yes, spamicity=" -f Spam   -b 0 -h 32 \
	prefilt@$1 > /dev/null 2>&1
/usr/bin/vcfilter -i -t virusFilter -c 0 -k "virus found" -f Quarantine -b 0 -h 28 \
	prefilt@$1 > /dev/null 2>&1

# display domain directory
/bin/ls -dl /var/indimail/domains/$1
/bin/ls -al /var/indimail/domains/$1

# get securely chown, chmod path
PATH=/usr/bin:/usr/sbin:/bin
chown=$(which chown)
chmod=$(which chmod)
sort=$(which sort)
grep=$(which grep)
# add the domain to spamignore, nodnscheck
for i in spamignore nodnscheck
do
	echo "adding $1 to $i control file"
	if [ -f /etc/indimail/control/$i ] ; then
		$grep -w @"$1" /etc/indimail/control/$i > /dev/null
		if [ $? -ne 0 ] ; then
			echo @"$1" >> /etc/indimail/control/$i
			$sort -u /etc/indimail/control/$i -o /etc/indimail/control/$i
		fi
	else
		echo @"$1" > /etc/indimail/control/$i
	fi
	$chown root:qmail /etc/indimail/control/$i
	if [ "$i" = "spamignore" ] ; then
		# 664 for roundcube plugin to modify
		$chmod 664 /etc/indimail/control/$i
	else
		$chmod 644 /etc/indimail/control/$i
	fi
done
vuserinfo postmaster@$1
exit 0
