Benutzer:Jaytea/invitesender

Aus Piratenwiki
Wechseln zu: Navigation, Suche

Für Menschen, die keinen Linuxserver zur Hand haben biete ich hiermit an ihre Einladungen über meinen Server zu verschicken. Bei Interesse oder allgemein Fragen zum Script schickt einfach eine Mail an mich.

#!/bin/bash

if [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$#" -ne 6 ];
then
        echo "Usage: invitesender <send-to> <send-from> <intro-file> <agenda-file> <outro-file> <days until meeting>"
        exit
fi

SECDATE=`date '+%s'`
DAYSUNTIL=$6
SECDATE=$((SECDATE+(86400*DAYSUNTIL)))
VSDATE=`date --date="1970-01-01 $SECDATE sec GMT+1" +%d.%m.`
VSDATEFULL=`date --date="1970-01-01 $SECDATE sec GMT+1" +%d.%m.%Y`

INTRO=`cat "$3"`
TO=`cat $4`

SUBJECT="Einladung zur Vorstandssitzung am $VSDATE"

printf "To: %s\nFrom: %s\nSubject: %s\nContent-Type: text/plain; charset=UTF-8\n\n" "$1" "$2" "$SUBJECT" >> full.mail
printf "%s %s %s\n\n" "$INTRO" "$VSDATEFULL" "$TO" >> full.mail
cat "$5" >> full.mail

/usr/lib/sendmail -t < full.mail

rm full.mail

Dieses Script einfach in eine Datei namens "invitesender" auf einem Linux-Server legen und als ausführbar markieren. Das Script nimmt 6 Parameter:

  • EMail-Adresse, an die geschickt werden soll
  • EMail-Adresse, von der aus geschickt werden soll (muss nicht existieren, wird nur im "From"-Feld der email eingetragen)
  • eine Datei mit einer allgemeinen Anrede und Text bis zum Datum
  • eine Datei mit Text ab dem Datum mit der Tagesordnung
  • eine Datei mit dem Ende der Einladung
  • Anzahl an Tagen, die noch bis zur Versammlung zeit ist

Die Tagesordnung mit der Information, wann und wo die Versammlung stattfindet lade ich aus einem Pad. Das ganze verpacke ich in folgendem Script, was schließlich von einem Cron-Job jede Woche ausgeführt wird:

#!/bin/bash

cd /home/jay/vs-invite/

DAY=`date '+%V'`
DAY=$((DAY%2))

if [ "$DAY" = "1" ];
then
        wget --output-document=TO.txt http://kvgoslar.piratenpad.de/ep/pad/export/vs-invite/latest?format=txt

        ./invitesender mail@provider.tld vorstand@piraten-goslar.de blog-intro1.txt TO.txt blog-outro.txt 2
        ./invitesender nds-goslar@lists.piratenpartei.de vorstand@piraten-goslar.de mail-intro1.txt TO.txt mail-outro.txt 2

        rm TO.txt
fi

So verschicke ich jede zweite Woche eine Einladungsmail an unsere Mailingliste und eine an mich zur Veröffentlichung auf unserem KV-Blog.