Files
pve-pbs-setup/setup-email-pve.sh

113 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
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
local bak="${file}.bak.$(date +%Y%m%d%H%M%S)"
cp "$file" "$bak"
echo "Backup erstellt: $bak"
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:"
echo "(Alle Felder sind Pflicht Enter übernimmt ggf. den Default)"
echo
# -----------------------------
# 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
disable true
mailto-user root@pam
matcher: default-matcher
comment Route all notifications to mail-to-root
mode all
target mailout
smtp: mailout
author $AUTHOR
from-address $FROMADDR
mailto $MAILTO
mailto-user root@pam
mode $MODE
port $PORT
server $SERVER
username $USERNAME
EOF
# -----------------------------
# priv/notifications.cfg schreiben
# -----------------------------
cat > "$PRIV_NOTIF_CFG" << EOF
smtp: mailout
password $SMTP_PASS
EOF
echo
echo "✅ Konfiguration neu geschrieben. Bitte WebUI prüfen."