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: 

 python3 $0 -f "/var/file.png" -e mail@domain.tld -s "Betreff"

python3 $0 -t "Text" -m mail@domain.tld -s "Betreff"

# -e ODER -m = Mailadresse 

 Beispiel: 

 import subprocess

empfaenger = "mail@domain.tld"

betreff = "Testbetreff"

nachricht = "Hallo, ich bin ein Test!"

try:

 result = subprocess.run(

 ['python3', 'lib/mailer.py', '-e', empfaenger, '-s', betreff, '-t', nachricht],

 check=True

 )

 print("Mail erfolgreich gesendet")

except subprocess.CalledProcessError:

 print("Fehler beim Mailversand") 

 

 Script: 

 #!/usr/bin/env 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] == '-f':

 file = args[i + 1]

 i += 2

 elif args[i] == '-t':

 text = args[i + 1]

 i += 2

 elif args[i] in ['-e', '-m']:

 mail = args[i + 1]

 i += 2

 elif args[i] == '-s':

 subj = args[i + 1]

 i += 2

 else:

 i += 1

# Fehlerprüfung

if not mail or not subj:

 print("ERROR")

 sys.exit(1)

# Mailversand

if file and not text:

 try:

 subprocess.run(['mail', '-s', subj, mail], input=open(file, 'rb').read(), check=True)

 except Exception as e:

 print("Fehler beim Senden:", e)

 sys.exit(1)

elif text and not file:

 try:

 subprocess.run(['mail', '-s', subj, mail], input=text.encode(), check=True)

 except Exception as e:

 print("Fehler beim Senden:", e)

 sys.exit(1)

else:

 print("ERROR")

 sys.exit(1)