Formmail (DropMail) - Praktische Kontaktformulare

Das für UNIX-Server frei verfügbare Programm formmail.pl steht allen Kunden von DropNet AG kostenlos zur Verfügung. Mit FormMail lassen sich einfach Daten, die auf einer Internet-Seite eingegeben werden, an eine definierte E-Mail Adresse versenden. Zusätzlich zur aktuellen Version 1.9 von Formmail hat DropNet AG einige Erweiterungen eingebaut, sowie alle Texte, die das Programm erzeugt, auf deutsch übersetzt (Weitere Sprachen sind einfach möglich wenn sich jemand für die Übersetzung findet).
Als besondere Erweiterung ist die einfache Anpassung an das bestehende Design eines Internet-Auftritts mit einer Vorlagendatei hervorzuheben.

Bei DropNet AG heisst das Programm dropmail.pl weil formmail.pl häufig ein beliebtes Angriffsziel von Hackern ist. Das Programm ist auch um einen SPAM-Filter erweitert. Dadurch entstehen trotz offenem Formular wenig SPAM-Mails. Nur in ganz seltenen Fällen braucht es dann den lästigen SPAM-Schutz mit Captcha oder ähnlich.

Konfiguration

Für die einfachste Verwendung von FormMail genügt ein Formular in dem ein Feld definiert ist. Der Name dieses Feldes ist "recipient", der Wert die E-Mail Adresse wohin die Daten gesendet werden sollen. Mehrere Empfänger können durch ein Komma getrennt werden.
Wegen starkem Missbrauch kann FormMail nur E-Mails an Empfänger senden, welche als Kunden-Domains bei DropNet AG registriert sind. Eine E-Mail Adresse bei aol.com kann also nicht als Empfänger angegeben werden.

Wenn Sie Bedenken haben, Ihre E-Mail Adresse im Feld "recipient" zu publizieren, können Sie anstelle des @-Zeichens auch die Kombination [at] verwenden. Damit wird das automatische Auslesen durch E-Mail Sammelprogramme verhindert.

info@dropnet.ch wird also info[at]dropnet.ch

Der Aufruf von Formmail geschieht mit der Angabe "action" im Form-Tag.

Hier der HTML-Quelltext eines Formulars das Formmail verwendet:

<form action="/cgi-bin/dropmail.pl" method="post">
<input type="hidden" name="recipient" value="email_adresse">

Weitere Formulardaten wie Textfelder, Textbereiche, Absenden- und Löschen-Button.

</form>

 

Zusätzlich zum Feld recipient können weitere Felder definiert werden, die eine besondere Bedeutung für das Programm Formmail haben:

subject: Der Wert dieses Feldes wird beim Empfänger in der Betreffzeile des E-Mail Programms angezeigt. (ist normalerweise ein Feld vom Typ "hidden"),

Tipp: Wenn dieses Feld ein Textfeld ist, kann der Besucher der Internet-Seite eine beleibige E-Mail Adresse angeben. So lässt sich einfach eine Seite "Hast Du schon gesehen?" realisieren.

email: In dieses Feld kann der Besucher der Internet-Seite seine E-Mail Adresse eintragen. (ist normalerweise ein Feld vom Typ "text"),
Dieses Feld wird überprüft ob es sich um eine gültige E-Mail Adresse handelt.
Anstelle von email können auch folgende Feldnamen verwendet werden: e-mail, Email, E-Mail, E_Mail, E-mail, Email

realname: Ähnlich wie das Feld E-Mail, nur kann hier der wirkliche Name eingegeben werden, der im E-Mail Programm in der Von-Zeile angezeigt wird.
Anstelle von realname können auch folgende Feldnamen verwendet werden: name, Name, Nachname, Familienname, Familyname

Die Verwendung der drei Felder subject, email und realname, oder der deutschen Entsprechungen, ist dringend zu empfehlen. Mit den weiteren Feldern lässt sich das Verhalten und das Aussehen von Formmail steuern:

template: Wenn Sie diese Angabe machen, verwendet Formmail diese Vorlagendatei. An der Stelle wo der HTML-Kommentar <!--dropnet--> steht, fügt Formmail seine Texte ein, also Fehlermeldungen, Danke-Text etc.
Geben Sie die volle URL zur Vorlagendatei an. Also z.B. "http://www.dropnet.ch/dropbox/templates/dropnet.html".

language: Mit diesem Feld kann die Sprache für die von Formmail erzeugten Antwortseiten. Ohne Angabe dieses Feldes werden die Seiten in deutsch ausgegeben. Zur Zeit definierte Sprachen:

"de" für deutsch, "en" für englisch.

Weitere Sprachen sind geplant. Wenn Sie eine weitere Sprache wünschen und diese Sprache auch können, sind wir um Übersetzungshilfe sehr dankbar. Der Aufwand pro weitere Sprache ist nicht sehr gross.

redirect: Nachdem die Mail abgesendet wurde, wird der Besucher der Internet-Seite an diese Adresse weitergeleitet. Die Adresse muss vollständig angegeben werden. Z.B:

<input type=hidden name="redirect"
value="http://www.dropnet.ch/Wir/Kontakt/ConfirmMail.html">

Dieses Feld hat Vorrang vor template. Wenn weder template noch redirect angegeben wird, nimmt Formmail eine Standardvorlage von DropNet AG.

required: Hier können alle Felder angegeben werden die ausgefüllt werden müssen. Die Feldnamen werden mit einem Komma getrennt.

<input type="hidden" name="required" value="E-Mail,Name,Adresse">

missing_fields_redirect: Ähnlich wie das Feld redirect. Diese Seite wird aufgerufen wenn ein Besucher nicht alle Felder ausfüllt die Sie mit required als Mussfelder definiert haben. Dieses Feld hat ebenso Vorrang vor template.

sort: Die Felder erscheinen normalerweise in der Reihenfolge in der sie im HTML-Quelltext definiert sind. Wenn Sie eine andere Sortierung wünschen, können Sie die Reihenfolge mit diesem Feld bestimmen:
<input type=hidden name="sort" value="order:name1,name2,name3,etc...">
oder nach Feldname:
<input type=hidden name="sort" value="alphabetic">

recipient_name: Mit dieses Feld können Sie den Namen angeben, der dann auf der Bestätigungsseite erscheint.

confirm_subject: Wird dieses Feld im Formular definiert, so erhält die Person die das Formulat ausfüllt, eine Bestätigungsmail.

title: Wenn Sie eine Vorlage verwednen, können Sie mit diesem Feld den Titel über der Ausgabe vom Programm definieren.

Weitere Felder die verwendet werden können:

  • env_report
  • print_config
  • print_blank_fields
  • return_link_url
  • return_link_title

Angaben über die Verwendung dieser Felder finden Sie in der Original-Beschreibung zu Formmail (Englisch).

Felder die in dieser Version von Formmail nicht unterstützt werden:

  • background
  • bgcolor
  • text_color
  • link_color
  • vlink_color
  • alink_color

Diese Angaben können in der Vorlagen-Datei, die Sie in template angeben, definiert werden.