Moin,
das sieht alles sehr unstrukturiert aus. Die erste Struktur, die zu bauen ist, ist eine Parameter Kontrollstruktur. Lege dazu einen Schlüsselparameter fest, welcher den Ablauf steuert, z.B. 'senden':
Sobald dieser Parameter in den POST-Daten enthalten ist, fragst Du alle anderen Parameter ab, welche für die Mail gebraucht werden, z.B. Abs.Email und den Text.
Unabhängig davon bzw, generell schreibst Du diese Input-Werte wieder als Values in das Formular, damit ebendas bei fehlenden Eingaben wieder gezeigt werden kann (Formular => Template). Das nennt sich dann Affenformular. Beachte den Kontext, wenn Benutzereingaben wieder auf die Seite geschrieben werden (HTML::Entities).
Ein Template für das Formular ermöglicht Dir auch, an den entsprechenden Labels den Text rot zu färben, wenn eine Eingabe fehlt.
Wenn alle Eingaben richtig sind, baust du die Maildatei zusammen und übergibst die an sendmail, hier ist ein Beispiel dazu, wie einfach das gemacht werden kann.
Verwende das Perl-Modul HTTP::Headers zum setzen der benötigten Response-Header, soll die Umleitung erfolgen, setze zusätzlich zum Location-Header den Status, z.B. 302 Found.
In Deinem Fall möchte die Zielseite (Antwortseite) erst gezeigt werden, wenn die Mail raus ist. Es gibt zwei Möglichkeiten:
- die Location ist an eine Session gekoppelt und wird nur dann die Inhalte ausliefern, wenn in der Session ein bestimmtes Flag gesetzt wurde (Mail wurde gesendet),
- es wird nicht umgeleitet, sondern die Zielseite wird zur Laufzeit erstellt.
Das wärs erst einmal im Wesentlichen und noch ein Tipp: Das JavaScript lass zunächst weg. Du kannst es zusätzlich und nachträglich einbauen, was den Komfort verbessert. Die Funktionalität muss ohne JS gegeben sein.
Viele Grüße,
Horst