Dokumentation Formmail-Script

Vielen Dank für Ihr Interesse an unserem Formmail-Script. Wir empfehlen Ihnen, sich Zeit für die Lektüre dieser Anleitung zu nehmen.

Einleitung

Es ist wichtig, dass das Script entweder über einen Link oder über ein Formular auf ihrer Website aufgerufen wird. Aus Sicherheitsgründen wird dabei die Verweisseite überprüft und mit den Angaben der Script-Konfiguration verglichen. Bei Übereinstimmung wird das Script ausgeführt.

Das Script ist für den direkten über einen Link und für den indirekten Aufruf über ein bestehendes Formular ausgelegt. Beim direkten Aufruf des Scripts wird die Datei index.php direkt verlinkt und die darin voreingestellten Templates (HTML und Mail) verwendet.

Beim indirekten Aufruf wird das Script durch ein bereits bestehendes Formular in einer HTML-Seite aufgerufen. Durch diese Methode können Sie mehrere Formulare in Ihrer Seite mit demselben Script versenden. HTML- und Mail-Templates sowie alle weiteren Parameter für das Script können mit Hilfe von Hidden-Formularfeldern im HTML-Formular definiert werden.

Durch die indirekte Methode können Sie Ihre bestehenden Kontaktformulare ohne aufwändige Änderungen mit diesem Script weiter betreiben.

Das HTML-Template wurde nach den Spezifikationen für XHTML 1.0 erstellt. Deshalb enthalten alle einfachen Tags (<br> oder <input>) einen abschließenden Slash (<br /> oder <input type="text" name="feld" />).

Konfiguration des Scripts

Achtung: Wenn Sie folgende Fehlermeldung beim Aufruf des Scripts erhalten - 'Falscher oder leerer Referrer (Verweisseite)!' - dann müssen Sie in der Datei 'index.php' in die Variable '$referring_server' Ihren Servernamen (also Ihre Domain mit und ohne www und am besten auch die IP-Adresse) eintragen.

Beispiel:

$referring_server = 'www.ihr-server.de, ihr-server.de, 127.0.0.1';

Ein weiterer Grund für die Fehlermeldung kann sein, dass das Script direkt und ohne Klick auf einen Link beziehungsweise nicht über ein Formular aufgerufen wurde.

$language     Tragen Sie hier das Kürzel für die Sprache ein (z.B.: de oder en). Welche Sprachen verfügbar sind können Sie im Verzeichnis 'languages' herausfinden.

Die folgende Funktion soll ebenfalls die Missbrauchsmöglichkeit des Scripts durch Dritte einschränken. Sie können die Anzahl der gesendeten E-Mails an die IP-Adresse des Benutzers koppeln.

$ip_banlist     In dieser Variable können Sie IP-Adressen von Servern eintragen, die Sie von der Nutzung des Formmail-Scripts ausschließen möchten. Wenn Sie diese Funktion nicht nutzen möchten, lassen Sie die Variable einfach frei.

$ip_address_count     Tragen Sie hier die Anzahl der E-Mails ein, die ein Benutzer mit derselben IP-Adresse über das Formular absenden kann. Sollte ein Benutzer diese Zahl erreichen, kann er erst nach der nächsten Einwahl in das Internet weitere E-Mails über das Formular versenden. Die Zahl 0 (Null) schaltet die Funktion ab.

Wenn Sie diese Funktion aktivieren, wird gleichzeitig die Log-Funktion eingeschaltet. Stellen Sie deshalb sicher, dass der Ordner 'log' und die Log-Datei ('log/logfile.txt') Schreibrechte besitzen (chmod 777).

$ip_address_duration     Mit dieser Variable legen Sie den Zeitraum fest, für den die oben angegebene Maximalzahl der zu versendenden E-Mails gilt. Ist diese Zeitspanne abgelaufen, kann der Benutzer wieder E-Mails mit dem Formular versenden.

$show_limit_errors     Hat ein Benutzer die maximale Anzahl seiner erlaubten E-Mails erreicht, können Sie ihm eine Fehlermeldung anzeigen.

$log_messages     Hier schalten Sie die Logging-Funktion der E-Mails ein beziehungsweise aus. Wollen Sie die Funktion nutzen, stellen Stellen Sie deshalb sicher, dass der Ordner 'log' und die Log-Datei ('log/logfile.txt') Schreibrechte besitzen (chmod 777).

$text_wrap     Diese Variable enthält die Anzahl der Zeichen, nach der die Zeilen in der E-Mail umbrochen werden. Wird kein Wert angegeben, wird kein Zeilenumbruch eingefügt.

$show_error_messages     Bei Auslieferung des Scripts ist diese Variable standardmäßig auf 'yes' gesetzt. Das hat zur Folge, dass Sie bei der Konfiguration des Scripts Fehlermeldungen und Hinweise zur Einrichtung des Scripts erhalten. Sobald aber das System funktioniert können Sie die Ausgabe der Meldungen abschalten. So verwehren Sie allzu neugierigen Besuchern den Einblick in das System.

$path['logfile']     Diese Variable enthält den Pfad zur Log-Datei für die E-Mail-Mail-Nachrichten.

$path['templates']     Diese Variable enthält den Pfad zu den Template-Dateien (HTML und Mail). Der Pfad kann relativ (./templtes/ oder templates/) und absolut (z.B.: /usr/local/etc/httpd/.../formmail/templates/ oder /kunden/homepages/.../.../htdocs/formmail/templates/) angegeben werden (immer mit Slash am Ende).

$file['default_html']     Wenn Sie das Script durch den direkten Aufruf nutzen möchten, muss diese Variable den Dateinamen des HTML-Templates enthalten. Dieses Template wird dann automatisch verwendet.
$file['default_mail']     Wenn Sie das Script durch den direkten Aufruf nutzen möchten, muss diese Variable den Dateinamen des Mail-Templates enthalten. Dieses Template wird dann automatisch verwendet.

$add_text     Sie können weitere Werte, Text, Variablen oder andere Inhalte an dieser Stelle festlegen. Diese Inhalte können Sie dann mit Hilfe von entsprechenden Markierungen in geschweiften Klammern in die Templates übertragen.

Wenn Sie eigene Werte in der Variable $add_text hinzufügen folgen Sie bitte dem Muster, dass durch die beiden Beispieleinträge deutlich gemacht wurde.

$add_text = array(

                    'txt_additional' => 'Additional',
                    'txt_more'       => 'More'

                  );

            
Der erste Teil eines Eintrags (z.B.: txt_additional) stellt den Namen der Platzhalter im Template dar. Wenn Sie also den Wert von txt_additional im Template anzeigen möchten, tragen Sie dort den Namen umschlossen von geschweiften Klammern ein - {txt_additional}. Der Name darf keine Leer- oder Sonderzeichen enthalten. Erlaubt ist nur der Unterstrich.

   

Nach oben

Anpassung des HTML-Templates - templates/form.tpl.html

Die Template-Datei ist eine simple HTML-Datei und kann auch dementsprechend editiert werden. Mit Hilfe von HTML und CSS können Sie das Layout Ihren Wünschen anpassen.

Sollten Sie für die Anpassung WYSIWYG-Editoren wie Dreamweaver, Frontpage oder NetObjects verwenden, achten Sie bitte darauf, dass die Software keine eigenmächtigen Veränderungen vornimmt. Die Funktionsweise des Scripts könnte dadurch beeinträchtigt werden.

Im Unterverzeichnis 'examples' befinden sich weitere HTML-Formulare. Diese sollen für Sie als Beispiele für die Erweiterung und Anpassung Ihres eigenen Formulars dienen. So haben Sie bei Benutzung des Templates 'alternative_form.tpl.html' die Möglichkeit, den Benutzer auswählen zu lassen, ob er die gerade besuchte Seite oder die Startseite empfehlen möchte. Und im Template 'advanced_form.tpl.html' sind Beispiele zur Verwendung von Checkboxen, Radio-Buttons und Auswahlmenüs aufgeführt.

In den Templates befinden sich Markierungen/Platzhalter in geschweiften Klammern, wie zum Beispiel {txt_script_name}. Die werden beim Aufruf des Scripts durch die entsprechenden Wörter ersetzt. Diese Wörter, also den Text für das Script, finden Sie in der Datei 'languages/language.de.inc.php'. Natürlich können Sie diese Wörter auch ändern oder an eine andere Position innerhalb des Templates verschieben. Es spricht auch nichts dagegen, wenn Sie die Markierungen durch richtige Wörter ersetzen. Ebenso können Sie die Sprachdatei nach dem vorgegebenen Muster erweitern.

Folgender Platzhalter ist nicht in der Sprachdatei enthalten und darf auch nicht verändert oder in der Sprachdatei durch eigene Definitionen angepasst werden:

{message}

Formularfelder

Zu jedem Formularfeldnamen im Template existiert automatisch ein Platzhalter. Dadurch ist sichergestellt, dass die Daten bei einer Fehlermeldung im Formular wieder erscheinen. Der Platzhalter hat die gleiche Bezeichnung, wie das Formularfeld.

Beispiel:

<input type="text" name="lastname" value="{lastname}">

Sie können das Formular beliebig um weitere Felder erweitern. Bitte achten Sie darauf, dass die Feldnamen und Platzhalter keine Leer- oder Sonderzeichen enthalten.

Pflichtfelder

Alle Formularfelder lassen als Pflichtfelder definieren. Das Formular wird damit erst dann abgeschickt, wenn alle Pflichtfelder ausgefüllt sind. Tragen Sie dazu die Formularfeldnamen der gewünschten Formularfelder in folgendes Hidden-Formularfeld im Template:

<input type="hidden" name="required_fields" value="" />

Beispiel:

<input type="hidden" name="required_fields" value="lastname, email, subject" />

E-Mail-Syntax

Ähnlich wie bei den Pflichtfeldern können Sie bestimmen, welche Felder auf einen korrekten E-Mail-Syntax geprüft werden sollen.

<input type="hidden" name="email_fields" value="" />

Beispiel:

<input type="hidden" name="email_fields" value="email" />

Danke-Seite

Nachdem das Formular abgeschickt wurde, wird auf eine vordefinierte Seite weitergeleitet. Diese Seite können Sie im folgenden Feld definieren:

<input type="hidden" name="thanks" value="" />

Beispiel:

<input type="hidden" name="thanks" value="danke.html" />

Festlegen des HTML-Templates

Sie können das Script direkt oder von einem bereits fertigen Formular in einer statischen HTML-Seite aus aufrufen. Im letzteren Fall müssen Sie das HTML-Template in folgendem Feld festlegen:

<input type="hidden" name="html_template" value="" />

Beispiel:

<input type="hidden" name="html_template" value="form.tpl.html" />

Mail-Template

Die Mail-Templates definieren Sie auf die gleiche Weise:

<input type="hidden" name="mail_template" value="" />

Dazu können Sie ein Mail-Template,

<input type="hidden" name="mail_template" value="mail.tpl.txt" />

oder mehrere Mail-Templates definieren. Durch die mehrfachen Mail-Templates können Sie mehrere E-Mails mit verschieden formatierten Inhalten versenden.

<input type="hidden" name="mail_template" value="mail.tpl.txt, mail2.tpl.txt" />

Auswahl-Menüs (Select-Menüs)

Das Script kann Auswahl-Felder verarbeiten, die wie folgt aufgebaut sind:

<select name="" size="">
  <option value=""></option>
  <option value=""></option>
</select>
    

Allerdings können noch keine Multiple Select-Felder verarbeitet werden.

Wie Sie sicher stellen, wie der vom Benutzer ausgewählte Wert bei einem erneuten Aufruf im Formular ausgewählt bleibt, zeigt das folgende Beispiel:

<select name="Anrede" size="2">
  <option value="Herr" {select:Anrede=Herr}></option>
  <option value="Frau" {select:Anrede=Frau}></option>
</select>
    

Der Platzhalter {select:Anrede=Herr} hat folgende Eigenschaften. An erster Stelle steht die Art des Formularfeldes. In diesem Fall ist es ein Select-Menü (= select). Danach folgt ein Doppelpunkt (:). An zweiter Stelle muss der Name des Formularfeldes erscheinen. Das ist im obigen Beispiel "Anrede". Danach folgt ein Gleichheitszeichen (=). An letzter Stelle muss der Wert des Options-Feldes stehen (also der Wert aus "value=").

Um den ausgewählten Wert im Mail-Template erscheinen zu lassen, tragen Sie bitte im Mail-Template den Namen des Feldes, eingeschlossen durch geschweifte Klammern - { } - ein.

Checkboxen

Das Script kann Checkbox-Felder verarbeiten, die wie folgt aufgebaut sind:

<input type="checkbox" name="" value="" />

Wie Sie sicher stellen, wie der vom Benutzer ausgewählte Wert bei einem erneuten Aufruf im Formular ausgewählt bleibt, zeigt das folgende Beispiel:

<input type="Checkbox" name="Newsletter" value="Yes" {checkbox:Newsletter=Yes} />

Der Platzhalter {checkbox:Newsletter=Yes} hat folgende Eigenschaften. An erster Stelle steht die Art des Formularfeldes. In diesem Fall ist es eine Checkbox (= checkbox). Danach folgt ein Doppelpunkt (:). An zweiter Stelle muss der Name des Formularfeldes erscheinen. Das ist im obigen Beispiel "Newsletter". Danach folgt ein Gleichheitszeichen (=). An letzter Stelle muss der Wert des Feldes stehen (also der Wert aus "value=").

Um den ausgewählten Wert im Mail-Template erscheinen zu lassen, tragen Sie bitte im Mail-Template den Namen des Feldes, eingeschlossen durch geschweifte Klammern - { } - ein.

Radio-Buttons

Das Script kann Radio-Button-Felder verarbeiten, die wie folgt aufgebaut sind:

<input type="radio" name="" value="" />

Wie Sie sicher stellen, wie der vom Benutzer ausgewählte Wert bei einem erneuten Aufruf im Formular ausgewählt bleibt, zeigt das folgende Beispiel:

<input type="radio" name="Anrede" value="Herr" {radiobutton:Anrede=Herr} />

Der Platzhalter {radiobutton:Anrede=Herr} hat folgende Eigenschaften. An erster Stelle steht die Art des Formularfeldes. In diesem Fall ist es ein Radio-Button(= radiobutton). Danach folgt ein Doppelpunkt (:). An zweiter Stelle muss der Name des Formularfeldes erscheinen. Das ist im obigen Beispiel "Anrede". Danach folgt ein Gleichheitszeichen (=). An letzter Stelle muss der Wert des Feldes stehen (also der Wert aus "value=").

Um den ausgewählten Wert im Mail-Template erscheinen zu lassen, tragen Sie bitte im Mail-Template den Namen des Feldes, eingeschlossen durch geschweifte Klammern - { } - ein.

Beispiele zu den eben beschriebenen Funktionen finden Sie im Template "advanced_form.tpl.html".

Nach oben

Anpassung des E-Mail Templates - templates/mail.tpl.txt

Im oberen Bereich des E-Mail-Templates befinden sich die Daten für den Kopfbereich der E-Mail. Dazu gehören:

      Empfänger    To:
      Absender     From:
      Betreff      Subject:
      Kopie        CC:
      Blindkopie   BCC:
    

Sie können den Empfänger der E-Mail im Template festlegen:

      To: name@ihr-server.de
    

Zusätzlich können Sie weitere Empfänger per Kopie und Blind-Kopie hinzufügen:

      CC: name@anderer-server.de
      CC: chef@firma.de
      BCC: secret@firma.de
    

Als Absender können Sie eine feste Adresse eingeben oder die Daten aus dem Formular verwenden:

      From: {email}
    

Sie können auch den Namen des Absenders einfügen. Dabei steht der Name vor der E-Mail-Adresse, die sich in spitzen Klammern befindet.

      From: {firstname} {lastname} <{email}>
    

Nach dem Kopfbereich folgt eine Leerzeile. Danach folgt der Inhalt der E-Mail. Sie können hier den Text nach Belieben ändern. Wenn Sie eigene Formularfelder hinzufügen, müssen die Namen der Felder im E-Mail-Template in geschweiften Klammern stehen - {formularfeldname}. Andernfalls werden die Inhalte aus dem Formular nicht in die E-Mail geschrieben.

Gesamte Formulardaten gebündelt anzeigen

Sie haben die Möglichkeit, alle Formulardaten gebündelt mit einem Platzhalter in der E-Mail anzuzeigen. Tragen Sie dazu den Platzhalter

      {all_content}
    

in das E-Mail-Template ein.

Umgebungsvariablen, Server-Datum und -Uhrzeit

Die folgenden Umgebungsvariablen stellt das Script zur Verfügung. Um die Variablen in der E-Mail sichtbar zu machen, können folgende Platzhalter benutzt werden.

{env_user_agent}     Browser-Software des Anwenders (Mozilla, Netscape, Opera, Internet Explorer).

{env_remote_address}     IP-Adresse des Anwenders.

{env_remote_host}     Hostname des Anwenders.

{env_year}     Jahr

{env_month}     Monat

{env_day}     Tag

{env_hour}     Stunde

{env_minute}     Minuten

{env_second})     Sekunden

Nach oben

Die Log-Datei - log/logfile.txt

Das Verzeichnis 'log' und die Datei logfile.txt muessen das Dateiattribut 777 besitzen (chmod 777) - also schreibbar sein.

Nach oben

Nutzung und Lizenzierung

Das Formmail-Script können Sie kostenlos nutzen. Wenn Sie das Script ohne Hinweis und Link auf Stadtaus.com betreiben möchten, können Sie die Vollversion online erwerben (15 Euro).

Nach dem Kauf erhalten Sie zusätzlich zur Script-Lizenz kostenlose Updates und Upgrades.

  1. Sie können die Script-Lizenz an Dritte verkaufen, auch als professioneller Reseller.
  2. Den Preis können Sie dabei selbst bestimmen.
  3. Die Script-Lizenz gilt für eine Domain.

Kontakt: http://www.stadtaus.com/

Weitere Scripts auf STADTAUS.com:

  1. Bildergalerie-Script
  2. Apotheken-Notdienstkalender
  3. Website-Empfehlungs-Script
  4. Online-Terminplaner
  5. Google-Tool
  6. Download-Script

Besuchen Sie unser Projekt MetaCollection. Die Seite ist ein Verzeichnis deutscher und internationaler Script-Archive.

http://www.metacollection.com/

Nach oben

Support

Antworten auf Ihre Fragen und Lösungen für Probleme mit dem Script finden Sie in unserem Support-Forum.

Nach oben