#!/usr/bin/env bash # Mail via GMX-Relay versenden (Podman-Image "smtp-relay") # # Klappt nur direkt im Container, daher ggf. via ssh aufrufen (Annahme: remote user == local user) # # $1 = recipient # $2 = Mail-Betreff (ggf. in "") # $3 || STDIN = Mail-Body # # Verwendung: # > echo "sinnloser Text - äöüÄÖÜß -"| mail.sh hb242@pm.me "noch'n test" # > mail.sh hb242@pm.me "log whatever" ../log/some.log # PODMAN=/usr/bin/podman SUDO="sudo -u container sh -c" MAILCONTAINER=smtp-relay MAILSERVER_IP=10.4.2.30 REMOTE="" which ip >/dev/null 2>&1 if [ $? -eq 0 ]; then # Linux myip=$(ip -o route get to 8.8.8.8 | sed -n 's/.*src \([0-9.]\+\).*/\1/p') else # macOS myip=$(ipconfig getifaddr en0) # FIXME: nicht sauber wg. explizitem IF! fi if [ "$myip" != "$MAILSERVER_IP" ]; then REMOTE=yes fi TO=$1 SUBJECT=$2 shift 2 if [ -z "$TO" ] || [ -z "$SUBJECT" ]; then echo "ERROR: missing parameter " echo echo "Usage: $0 recipient subject [file || STDIN]" echo exit fi # Mail body aus Datei oder STDIN holen CONTENT=$(cat ${1:--}) MAILCMD="$SUDO $PODMAN exec -i $MAILCONTAINER /usr/sbin/sendmail -i -t" if [ ! -z "$REMOTE" ]; then MAILCMD="ssh $MAILSERVER_IP \"$MAILCMD\"" fi # construct mail header + content and pipe to sendmail cat <