mailer (Bash)

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: 

 # Direktaufruf (Tests)

mailer.sh -e "mail@domain.tld" -s "Testbetreff" -t "Hallo, ich bin ein Test!"

# im Script

empfaenger="mail@domain.tld"

betreff="Testbetreff"

nachricht="Hallo, ich bin ein Test!"

if bash lib/mailer.sh -e "$empfaenger" -s "$betreff" -t "$nachricht"; then

 echo "Mail erfolgreich gesendet"

else

 echo "Fehler beim Mailversand"

fi 

 

 Script: 

 #!/bin/bash

while [[ $# -gt 0 ]]; do

 case "$1" in

 -f) file="$2"; shift 2 ;;

 -t) text="$2"; shift 2 ;;

 -e|-m) mail="$2"; shift 2 ;;

 -s) subj="$2"; shift 2 ;;

 esac

done

if [ -z "$mail" ] || [ -z "$subj" ]; then

 echo "ERROR"

 exit 1

fi

if [ -n "$file" ] && [ -z "$text" ]; then

 cat "$file" | mail -s "$subj" "$mail"

elif [ -n "$text" ] && [ -z "$file" ]; then

 echo "$text" | mail -s "$subj" "$mail"

else

 echo "ERROR"

 exit 1

fi

exit 0