#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0

# Définition des variables
MAILDIR="/var/mail/vhosts"
POSTFIX_CONFIG="/etc/postfix/virtual_domains"
USER_VMAIL="vmail"
GROUP_VMAIL="vmail"

# Vérifier si le script est exécuté en root
if [[ $EUID -ne 0 ]]; then
    echo "❌ Ce script doit être exécuté en tant que root."
    exit 1
fi

# Vérifier si un domaine a été passé en paramètre
if [[ -z "$1" ]]; then
    echo "Usage: $0 <domaine>"
    exit 1
fi

DOMAIN=$1

# Vérifier si le domaine est déjà enregistré
if grep -q "^$DOMAIN$" "$POSTFIX_CONFIG"; then
    echo "⚠️  Le domaine $DOMAIN est déjà configuré dans Postfix."
    exit 1
fi

echo "🔹 Ajout du domaine : $DOMAIN"
echo "$DOMAIN" >> "$POSTFIX_CONFIG"

# Création du répertoire pour le domaine
DOMAIN_DIR="$MAILDIR/$DOMAIN"
if [[ ! -d "$DOMAIN_DIR" ]]; then
    echo "📁 Création du dossier mail pour $DOMAIN"
    mkdir -p "$DOMAIN_DIR"
    chown -R "$USER_VMAIL:$GROUP_VMAIL" "$DOMAIN_DIR"
    chmod -R 770 "$DOMAIN_DIR"
else
    echo "⚠️  Le dossier $DOMAIN_DIR existe déjà."
fi

# Recharger Postfix pour appliquer les changements
echo "🔄 Rechargement de Postfix..."
systemctl reload postfix

# Vérification de la bonne prise en compte
if systemctl is-active --quiet postfix; then
    echo "✅ Domaine $DOMAIN ajouté avec succès et Postfix rechargé 🎉"
else
    echo "❌ Erreur : Postfix ne fonctionne pas correctement après la mise à jour."
    exit 1
fi
