mailer (Python3)
Dieser Mailer schickt einfach eine Mail vom System aus. Dabei muss darauf geachtet werden, dass der Server Mails versenden kann mit "mail". Es schickt je nach Einstellung eine Text-Mail oder Mail mit Anhang. Der Rückgabewert besagt, ob die Mail erfolgreich versendet wurde - oder nicht.
Eigener Anwendungsfall: Einfacher Text, Bestätigungscode, Link, Nachricht.
HOWTO:
$0 -f "/var/file.png" -e mail@domain.tld -s "Betreff"
$0 -t "Text" -m mail@domain.tld -s "Betreff"
# -e ODER -m = Mailadresse
Beispiel:
#import Direktaufrufsubprocess
(Tests)empfaenger mailer.sh -e= "mail@domain.tld"
-sbetreff = "Testbetreff"
-tnachricht = "Hallo, ich bin ein Test!"
#try:
imresult Script= empfaenger="mail@domain.tld"subprocess.run(
betreff="Testbetreff"['python3', nachricht="Hallo, ich bin ein Test!"
if bash 'lib/mailer.shpy', '-ee', "$empfaenger"empfaenger, '-ss', "$betreff"betreff, '-tt', "$nachricht";nachricht],
thencheck=True
echo)
print("Mail erfolgreich gesendet")
elseexcept echosubprocess.CalledProcessError:
print("Fehler beim Mailversand"
fi)
Script:
#!/usr/bin/bashenv python3
import sys
import subprocess
args = sys.argv[1:]
file = None
text = None
mail = None
subj = None
# Argument-Parsing
i = 0
while [[i $#< len(args):
if args[i] == '-gtf':
0file ]];= doargs[i case+ "$1"1]
i += 2
elif args[i] == '-t':
text = args[i + 1]
i += 2
elif args[i] in ['-f)e', file="$2";'-m']:
shiftmail = args[i + 1]
i += 2
;;elif args[i] == '-t)s':
text="$2";subj shift= args[i + 1]
i += 2
;;else:
-e|-m)i mail="$2";+= shift1
2# ;;
-s) subj="$2"; shift 2 ;;
esac
doneFehlerprüfung
if [not -zmail "$mail"or ]not ||subj:
[ -z "$subj" ]; then
echo print("ERROR")
exitsys.exit(1)
1# fiMailversand
if file and not text:
try:
subprocess.run(['mail', '-ns', subj, mail], input=open(file, 'rb').read(), check=True)
except Exception as e:
print("$file"Fehler ]beim &&Senden:", [e)
-z "$text" ]; then
cat "$file" | mail -s "$subj" "$mail"sys.exit(1)
elif text and not file:
try:
subprocess.run(['mail', '-ns', subj, mail], input=text.encode(), check=True)
except Exception as e:
print("$text"Fehler ]beim &&Senden:", [e)
-zsys.exit(1)
"$file"else:
]; then
echo "$text" | mail -s "$subj" "$mail"
else
echo print("ERROR")
exit 1
fi
exit 0sys.exit(1)