From 36585a69874cefcdb96ab4d31378b0ec0d92b3cb Mon Sep 17 00:00:00 2001 From: "manuel.maier" Date: Tue, 27 Jan 2026 22:49:35 +0100 Subject: [PATCH] setup-email-pve.sh aktualisiert --- setup-email-pve.sh | 76 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/setup-email-pve.sh b/setup-email-pve.sh index 0a339f3..80975af 100644 --- a/setup-email-pve.sh +++ b/setup-email-pve.sh @@ -4,7 +4,9 @@ set -euo pipefail NOTIF_CFG="/etc/pve/notifications.cfg" PRIV_NOTIF_CFG="/etc/pve/priv/notifications.cfg" +# ----------------------------- # Backup-Funktion +# ----------------------------- backup_file() { local file=$1 if [ -f "$file" ]; then @@ -14,22 +16,69 @@ backup_file() { fi } +# ----------------------------- +# Pflichtfeld-Reader +# $1 = Prompt +# $2 = Variablenname +# $3 = Optionaler Default +# ----------------------------- +read_required() { + local prompt="$1" + local varname="$2" + local default="${3:-}" + local input + + while true; do + if [[ -n "$default" ]]; then + read -rp "$prompt [$default]: " input + input=${input:-$default} + else + read -rp "$prompt: " input + fi + + if [[ -n "$input" ]]; then + printf -v "$varname" '%s' "$input" + break + fi + + echo "❌ Eingabe darf nicht leer sein!" + done +} + +# ----------------------------- +# Backups +# ----------------------------- backup_file "$NOTIF_CFG" backup_file "$PRIV_NOTIF_CFG" +echo echo "Bitte die SMTP Notification Konfiguration eingeben:" - -read -rp "Author (z.B. MH-PVE02 | MAIERHOME H33): " AUTHOR -read -rp "From-Address (z.B. MH-PVE02@vmd55888.de): " FROMADDR -read -rp "Empfänger-Mailadresse (mailto): " MAILTO -read -rp "SMTP Server (z.B. mail.vmd55888.de): " SERVER -read -rp "SMTP Port (z.B. 587): " PORT -read -rp "Modus (starttls/ssl/none): " MODE -read -rp "SMTP Benutzername: " USERNAME -read -rsp "SMTP Passwort: " SMTP_PASS +echo "(Alle Felder sind Pflicht – Enter übernimmt ggf. den Default)" echo -# notifications.cfg komplett neu schreiben +# ----------------------------- +# Eingaben +# ----------------------------- +read_required "Author" AUTHOR +read_required "From-Address" FROMADDR + +read_required "Empfänger-Mailadresse (mailto)" MAILTO "admin@vmd55888.de" +read_required "SMTP Server" SERVER "mail.vmd55888.de" +read_required "SMTP Port" PORT "587" +read_required "Modus (starttls/ssl/none)" MODE "starttls" +read_required "SMTP Benutzername" USERNAME "MH-PVE02@vmd55888.de" + +# Passwort (Pflichtfeld, versteckt) +while true; do + read -rsp "SMTP Passwort: " SMTP_PASS + echo + [[ -n "$SMTP_PASS" ]] && break + echo "❌ Passwort darf nicht leer sein!" +done + +# ----------------------------- +# notifications.cfg schreiben +# ----------------------------- cat > "$NOTIF_CFG" << EOF sendmail: mail-to-root comment Send mails to root@pam's email address @@ -52,10 +101,13 @@ smtp: mailout username $USERNAME EOF -# priv/notifications.cfg komplett neu schreiben +# ----------------------------- +# priv/notifications.cfg schreiben +# ----------------------------- cat > "$PRIV_NOTIF_CFG" << EOF smtp: mailout password $SMTP_PASS EOF -echo "Konfiguration neu geschrieben. Bitte WebUI prüfen." \ No newline at end of file +echo +echo "✅ Konfiguration neu geschrieben. Bitte WebUI prüfen." \ No newline at end of file