Einleitung
Das Modul bildet einen Form-Mailer ab. Er dient also für einfache
Kontaktformulare. Das Programm erzeugt *.tml-Dateien im
Mail-Verzeichnis. Um den Versand kümmert sich das mailman.prg (über
einen Scheduler).
Templates
Ein Parameter beim Aufruf bestimmt den Namen der verwendeten Templates. Wird z.B. Formmail mit {execmacro="formmail" param="kontakt"} eingebunden sind die Templates formmail/kontakt/ini, formmail/kontakt/form, formmail/kontakt/message und formmail/kontakt/mail.
formmail/name_durch_param/ini
Hier werden die Felder angegeben, die im Formular übertragen werden. Beispiel:
field_2 = eMail
field_3 = text:nachricht
field_x = Name - ein Eingabefeld vom Typ text
field_x = text:Name - ein Eingabefeld vom Typ textarea
Die Nummerierung muss dabei lückenlos sein.
Hinter dem Feldnamen können Sie mit ,* bestimmen, dass es sich um ein Pflichtfeld handelt. Beispiel:
field_2=eMail,*
Die Meldung, die bei nichtausfüllen angezeigt wird, wird als err_filling angegeben. Beispiel:
err_filling=Rot markierte Felder sind Pflichtfelder.
Formmail kann Pseudofelder enthalten, deren Inhalt von einem externen Programm geliefert wird. Beispiel:
formmail/name_durch_param/form
Hier ist das komplette Eingabeformular. Beispiel:
Name: <input type="text" name="Name"><br>
eMail: <input type="text" name="eMail"><br>
Text: <textarea name="text:nachricht"></textarea><br>
<input type="submit" value="OK" name="OK">
</form>
Es muss sich dabei um ein komplettes HTML-Formular inkl. der Form-Tags handeln. Als action muss action="{formaction}" angegeben werden. Als Eingabefelder sind die erlaubt, die vorher definiert wurden. Als Platzhalter für die Ausgabe von Fehlermeldungen können Sie {error} verwenden.
Captcha:
Um die Captcha-Prüfung zu benutzen müssen Sie im Formular ein Feld mit Namen captcha definieren sowie einen Platzhalter {captchaimage} einsetzen.
Beispiel:
<input type="text" name="captcha">
Um für mehr Komfort bei Ihren Benutzern zu sorgen, sollten dann auch alle bereits eingegebenen Werte wiederholt werden. Das erreichen Sie, indem Sie {Feldname} als Platzhalter verwenden.
Beispiel für Name:
formmail/name_durch_param/mail
Enthält
die eMail-Nachricht, so wie sie erzeugt wird. Zu beachten ist dabei,
dass sie im TML-Format angelegt werden muss. Das bedeutet: In der
ersten Zeile muss fest tdbmail stehen, die
zweite Zeile soltle die eMail-Adresse des Empfängers enthalten, die
dritte Zeile die des Absenders, und in der vierten Zeile muss der
Betreff der Nachricht eingetragen werden.
info@eforia.de
kontaktformular@eforia.de
Nachricht über Kontaktformular
Von: {Name}
Mail: {eMail}
Am: {today}
Um: {now}
IP: {ip}
Text:
{text:nachricht}
{
{
{
Es können auch mehrere Mails versendet werden. Dann müssen einfach mehrere Vorlagen mail, mail_2, mail_3, ... vorhanden sein.
formmail/name_durch_param/message
Hier wird die Nachricht die der Anwender nach Abschicken eines Formulars erhält festgelegt.
Die folgenden Angaben wurden weitergeleitet:<br>
Von: {Name}<br>
Mail: {eMail}<br>
Am: {today}<br>
Um: {now}<br>
IP: {ip}<br>
Text:<br>
{text:nachricht}
Aufruf
Wie oben beschrieben, erwartet formmail einen Parameter, der den Namen der Templates bestimmt. Dadurch lassen sich verschiedene Formulare in einer Website einbinden.
{execmacro="formmail" param="name"}
Dateiupload
Ab Version 5 können auch Dateien in einem Formular hochgeladen werden:
Man legt die Felder wie gewohnt an. Diese müssen allerdings mit file- beginnen. In der Volage ini also beispielsweise:
In der Formularvorlage form wird das Feld in der Art eingefügt:
Dort in der Vorlage muss dem Formular auch noch mitgeteilt werden, dass es Dateien überhaupt verschicken soll. Dazu ergänzt man den einleitendenform-Tag um eine enctype-Angabe. Im Ergebnis sieht das dann beispielsweise so aus:
Was jetzt noch fehlt ist die mail-Vorlage. Diese muss ja die Anhänge mit aufnehmen. Damit dies möglich ist, benutzt man das tdbmail3-Format. Eine Beispiel-Vorlage sieht so aus:
webmaster@mein-ewm-system.de
informer@mein-ewm-system.de
Test Mail
{attachments}
Hier der übliche Mailtext mit Platzhaltern
Wie man sieht, muss lediglich an das tdbmail in der ersten Zeile eine 3 angefügt werden und zwischen Betreff und Text eine Zeile mit dem Platzhalter {attachments} eingefügt werden. An diese Stelle setzt der Formmailer dann die Anhänge.
Bei Anhängen muss übrigens der MIME-Typ bestimmt werden. Dazu wird die MIME-Datei von Apache benutzt. In mail.ini findet sich der Pfad dorthin, der auf jedem Linux-System mit installiertem Apache bereits stimmen sollte. Bei Bedarf kann er dort angepasst werden.