#!/bin/bash
# $Id: postfix_adduser.bash 618 2024-12-04 16:48:54Z bertrand $
# Ce script permet d'ajouter un utilisateur Postfix (boite de 
# réception SMTP) nécessaire pour l'envoi, la réception et le relai 
# de mails.
# external parameters
domain=$1
username=$2
# internal parameters
base_path="/home/mail"
mbox_path="/etc/postfix/mboxes"
domain_path="$base_path/$domain"
user_path="$domain_path/$username"
uname="postfix"
gname="postfix"
mode="700"
# tools
postmap_tool=$(which postmap)
if [[ -n $domain && -n $username && -n $postmap_tool ]]; then
	# user mailbox root
	mkdir $user_path
	chown $uname.$gname $user_path
	chmod $mode $user_path
	# user mailbox cur
	mkdir $user_path/cur
	chown $uname.$gname $user_path/cur
	chmod $mode $user_path/cur
	# user mailbox new
	mkdir $user_path/new
	chown $uname.$gname $user_path/new
	chmod $mode $user_path/new
	# user mailbox tmp
	mkdir $user_path/tmp
	chown $uname.$gname $user_path/tmp
	chmod $mode $user_path/tmp
	# display result
	ls -lh $user_path
	echo "$username@$domain	$domain/$username/" >> $mbox_path
	$postmap_tool $mbox_path
else
	if [[ -z $domain || -z $username ]]; then
		echo "Usage: $0 domain username"
	fi
	if [[ -z $postmap_tool ]]; then
		echo "postmap not found"
	fi
fi
