cboltz.de

Zufallssignaturen unter eMails

Zufallssignaturen unter eMails sind eine schöne Sache, um Mails etwas lustiger und abwechslungsreicher zu machen. Doch wie kommt die Zufallssignatur unter die Mail?

Der erste Schritt ist die Zusammenstellung der Signaturen. Am schönsten ist natürlich eine eigene Sammlung, die man mit addisg nach und nach aufbauen kann. Das folgende Script öffnet einen Editor (vi) zur Eingabe einer neuen Signatur, legt anschließend mit strfile das passende *.dat an (das wird für fortune benötigt) und commitet die Sigsammlung noch in ein CVS, um Datenverlust vorzubeugen.

###cb### in der Sig-Datei ist übrigens ein Kommentar, der von makesig wieder weggegrepppt wird. addsig gibt automatisch das Datum in Form eines solchen Kommentars vor. Man kann aber auch jederzeit weitere Kommentare angeben.

#!/bin/bash # addsig (c) Christian Boltz 2004-2024 / GPL # --noedit: only update *.dat, do not enter new signature # (useful after editing $SIGFILE manually) SIGDIR="${HOME}/sigs" TMPFILE="${SIGDIR}/addsig.tmp" # If you decide to use a temp file in /tmp, # using mktemp is highly recommended! SIGFILE="${SIGDIR}/gute_sigs" test "$1" '!=' "--noedit" && { echo >> "$TMPFILE" echo "###cb### `date +%Y-%m-%d`" >> $TMPFILE vi "$TMPFILE" echo "%" >> "$TMPFILE" cat "$TMPFILE" >> "$SIGFILE" && rm "$TMPFILE" || exit 1 } /usr/sbin/strfile -s "$SIGFILE" "${SIGFILE}.dat" && \ echo " sig added successfully." cd "${SIGDIR}" && cvs commit -m "autobackup"

 
Wenn genügend Sigs zusammengekommen sind oder einem die mit Fortune mitgelieferten reichen, kann der Spaß unter jeder Mail beginnen. Dazu bringt man seinem Mailprogramm bei, die Signatur "aus der Befehlsausgabe" des folgenden makesig-Scripts zu lesen. Die Angabe des Parameters --mail ist übrigens zu empfehlen und spart etwas Tipparbeit.

#!/bin/bash # makesig (c) Christian Boltz 2004-2024 / GPL # --mail: Grußformel mit ausgeben # --staticsig: statische sig # --english: englische Grußformel SIG="`/usr/bin/fortune \"${HOME}/sigs/gute_sigs\" | grep -v '^###cb###'`" gruss='Gruß' # gruss="Frohe Weihnachten" mail=0 name='Script "geklaut" bei Christian Boltz - www.cboltz.de' staticsig='feste Sig bei Angabe von --staticsig' # SIG='besonderer Text statt Zufallssig (ohne --staticsig)' while [ -n "$1" ] ; do case "$1" in --staticsig) SIG="$staticsig" ;; --english) gruss="Regards," ;; --mail) mail=1 ;; *) echo "*** unknown option $1 ***" exit 1 ;; esac shift done if [ "$mail" = 1 ] ; then echo "$gruss" echo echo "$name" echo "-- " fi echo "$SIG"

 
Wenn man eine bestimmte Signatur aus seiner Sammlung sucht, hilft grepsig. Das kann man wahlweise mit agrep oder fortune realisieren, wobei fortune die bessere Lösung darstellt:

#!/bin/bash # grepsig (c) Christian Boltz 2004-2024 / GPL # agrep -d'^%$' -i "$@" "${HOME}/sigs/gute_sigs" /usr/bin/fortune "${HOME}/sigs/gute_sigs" -i -m "$1"

Letzte Aktualisierung: 19.07.2005