55 lines
1.5 KiB
Bash
Executable File
55 lines
1.5 KiB
Bash
Executable File
#!/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
|