Files
server-backup/mail.sh
T
2025-04-05 12:33:52 +02:00

58 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Mail via GMX-Relay versenden (Docker-Image "hb42/smtp")
#
# 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
#
DOCKER=/usr/bin/docker
MAILCONTAINER=smtp
MAILSERVER_IP=10.4.2.30
SSH=""
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
SSH="ssh $MAILSERVER_IP "
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:--})
# construct mail header + content and pipe to sendmail
cat <<EOMB | $SSH $DOCKER exec -i $MAILCONTAINER /usr/sbin/sendmail -i -t
FROM: hb42@gmx.de
TO: ${TO}
DATE: $(date -R)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
SUBJECT: $SUBJECT
$CONTENT
EOMB