Eine Wiedervorlagefunktion fr Email

Listing zu "Zeit fr Mail", c't 6/01 S.306, ju

Autoren: Harald Boegeholz (hwb@heise.de)
	 Juergen Schmidt (ju@ct.heise.de)





# Voraussetzungen:

- sendmail (qmail sollte auch funktionieren, 
            erfordert aber evtl andere Parameter)
- at
- Perl

Perl-Module 

- MailTools (http://www.cpan.org/modules/by-module/Mail/)

Optional:

- IO-stringy (http://www.cpan.org/modules/by-module/IO/)
- MIME-Tools (http://www.cpan.org/modules/by-module/MIME/)

Damit koennen auch MIME-codierte Subject-Zeilen wie sie z.B. pine
erzeugt, interpretiert werden (siehe testmime). Dazu das Statement
"use MIME::Words" und die Zeile mit decode_mimewords() entkommentieren
und dafr die Zeile "$subject = $head->get("Subject");" kommentieren.






# Installation:

Benutzer "resend" anlegen. Im Home-Directory das Verzeichnis "mdir"
erzeugen und Rechte entsprechend setzen ("chmod 0600 ~/mdir" ). In der
~/profile "umask 077" anhaengen, damit nur "resend" Leserechte auf die
erzeugten Dateien hat.

Das Skript resend.pl nach ~resend/ kopieren und ausfhrbar machen
(chmod a+x ./resend.pl). Dann die Variablen im ersten Block anpassen
-- insbesondere $fromaddress (NICHT auf resend zeigen lassen:
Mail-Loops !!!). Danach das erste "die ..."  auskommentieren.


################################################################
WICHTIG:

Vor Inbetriebnahme ausgiebig auf mgliche Fehlerbedingungen (falsche
Pfade, Adressen usw.) testen. Bei falscher Konfiguration kann es zu
Endlos-Mail-Schleifen kommen, die den Server lahmlegen !!!

Ein erster Test kann mit 

cat testmail | ./resend.pl

erfolgen. "atq" bzw. "at -c <Jobnummer>" zeigt den erzeugten Job an.
Er sollte nach 5 Minuten eine Testmail an <root@localhost> senden.
testmime enthlt eine Mail mit MIME-codiertem Subject, das nur mit
MIME::Words und decode_mimewords() richtig interpretiert wird.
################################################################


Im Home-Direchtory die Datei .forward anlegen, mit:

"| exec /home/resend/resend.pl >> resend.log 2>&1"

Jetzt ist das Skript scharfgeschaltet.

Falls es trotz aller Vorkehrungen zu Mail-Loops kommt, sofort die
.forward lschen:

rm ~resend/.forward






# Benutzung:

Mail an: resend@localhost       (beziehungsweise lokale Domain)

Subject: <DATE> ...

<Date> kann folgendes Format haben:

d[d].m[m].[yy]yy [hh:mm]      (Uhrzeit optional)

Beispiele:

31.12.2001
1.4.01 11:11

Oder ein Interval mit: Wochen (w), Tagen(d), Stunden (h), Minuten (m)

1w    eine Woche
1.5h  anderthalb Stunden
1h30m dito
+1.5h dito





# Lizenz

Das Skript steht unter der GNU General Public License (GPL).
Details siehe "License.txt"





# FAQs:

Q: Das Skript endet immer mit:

Configure mail adress first at ./resend.pl line 20.    

A: Passen Sie die Mail-Adressen und Pfade im Kopf des Listings an und
kommentieren Sie dann das die-Statement aus.



Q: In der Log-Datei erscheint immer:

warning: commands will be executed using /bin/sh


A: Das at-Kommando gibt diese Warnung aus -- angeblich nur, wenn die
Login-Shell ungleich /bin/sh ist. Der Quell-Code enthuellt jedoch: es
kommt immer. Abhilfe: Quellcode von at patchen und neu uebersetzen --
oder ignorieren.

