Formmailer v1.74 ------------------ 1. Installation 2. Version 3. Updates 4. Probleme 5. Feldnamen 6. Felder 7. Templates und Sprache 8. Bestätigungsseite 9. Fehlerseite 10. Einstellungen 11. Sortierung 12. Rechnen 13. Excel und CSV 14. Mehrseitige Formulare und Platzhalter 15. Kompatibilität 16. Sicherheitshinweis 17. History 18. Lizenz 1. Installation: >------------------------------------------------------------------------------------------------------< a) Entpacken Sie das Zip File mit einem Dekomprimierungsprogramm wie WinZip oder WinRar. b) Speichern Sie die beinhalteten Dateien auf Ihren Computer. c) Starten Sie Ihr FTP Programm und Verbinden sich mit Ihren Internet Service Provider (ISP) zu Ihrer Domain. d) Stellen Sie sicher ob Sie ein bestimmtes CGI-BIN Verzeichnis benötigen oder ob Sie das Script in jedem beliebigen Verzeichnis ausführen können. Ihr ISP gibt Ihnen darüber Auskunft. Ihr gemieteter Webspace muss eigene CGI-BIN Scripte ausführen können. In den meisten Fällen ist das mit im angemieteten Paket enthalten. Nur in kleineren Paketen muss so eine Funktion zusätzlich beauftragt werden !! e) Öffnen Sie das Vorhandene CGI-BIN Verzeichnis oder erstellen Sie ein Verzeichnis mit dem Namen CGI-BIN und öffnen es dann. f) Erstellen Sie im Verzeichnis "CGI-BIN" einen Ordner "mailer". Der Ordner kann auch einen von Ihnen selbst bestimmten Namen erhalten. Wechseln Sie in den neu angelegten Ordner "mailer". g) Stellen Sie Ihr FTP Programm auf den Modus ASCII. Ein FTP Programm verfügt meist über drei verschiedene Modis: ASCII BINARY und AUTO. h) Kopieren Sie jetzt alle Dateien im lokalen cgi-bin Verzeichnis in den Ordner "mailer" auf Ihren Webspace: Berechtigung der Files: Berechtigen Sie die Files mit einer Berechtigung von 755: - mailer.cgi Berechtigen Sie die Files mit einer Berechtigung von 777: - /mailer-data/flood.txt - /mailer-data/sessiongrafik.txt Weitere Informationen über Berechtigungen finden Sie unter: http://www.coder-world.de/cw/seite__pagezugriffsrechte.html i) Starten Sie Ihren Browser und rufen Sie die folgende Seite auf: http://www.IhreDomain.de/cgi-bin/mailer/mailer.cgi Wenn der Aufruf problemlos funktioniert, benennen Sie die Datei /mailer-data/txt.htaccess in /mailer-data/.htaccess um. j) Sie sollten Ihre E-Mailadresse eintragen entweder in z.B.: index.html folgende Zeile ändern: Dann sollte der Wert $domains gesetzt werden. (in mailer.cgi zufinden) Alternativ kann $empfaenger in mailer.cgi gesetzt werden. k) Nun das Script und die Dateien an Ihre Wünschen anpassen. Sie sollten den Sicherheitshinweis beachten unter Punkt 14 l) Einige Beispiele für Formular wurden beigelegt. 1) Ein normales Formular. Aufruf: mailer.cgi 2) Ein Formular mit Uploadanzeige beim hochladen der Dateien. Aufruf: mailer.cgi?temp=indexupload.html 3) Ein Formular mit etwas Javascript. Aufruf: mailer.cgi?temp=indexjavascript.html 4) Ein Formular mit Vorschaufunktion. Aufruf: mailer.cgi?temp=indexvorschau.html 5) Ein Formular über mehrere Seiten. Aufruf: mailer.cgi?temp=indexseite1.html Weitere Informationen über Installationen finden Sie unter: http://www.coder-world.de/cw/seite__pageinstall.html Mehr Informationen über Templates und HTML-Dateien finden Sie unter: http://www.coder-world.de/cw/seite__pagetemplates.html Folgende Struktur sollte vorhanden sein wenn das Verzeichnis "mailer" ist: /mailer/mailer.cgi (chmod 755) /mailer/mailer-data/ (Folder, chmod 777) /mailer/mailer-data/save/ (Folder, chmod 777) /mailer/mailer-data/.htaccess /mailer/mailer-data/domains.txt /mailer/mailer-data/en_sprache.txt /mailer/mailer-data/ext.txt /mailer/mailer-data/flood.txt (chmod 777) /mailer/mailer-data/ips.txt /mailer/mailer-data/mail.txt /mailer/mailer-data/sessiongrafik.txt /mailer/mailer-data/sprache.txt /mailer/mailer-data/zensur.txt /mailer/responder/1.txt /mailer/send/1.txt /mailer/templates/error.html /mailer/templates/error2.html /mailer/templates/fertig.html /mailer/templates/index.html >------------------------------------------------------------------------------------------------------< 2. Version >------------------------------------------------------------------------------------------------------< Um die Version von Ihrem installierten Formmailer aufzurufen einfach folgendes im Browser eingeben: http://www.ihredomain.de/cgi-bin/mailer.cgi?action=version >------------------------------------------------------------------------------------------------------< 3. Updates >------------------------------------------------------------------------------------------------------< Für ein Update von einer älteren zu einer neueren Formmailer-Version muss generell nur "mailer.cgi" ersetzt werden. >------------------------------------------------------------------------------------------------------< 4. Probleme >------------------------------------------------------------------------------------------------------< Sollte die Fehlermeldung "Sendmail nicht gefunden." erscheinen oder keine E-Mail versendet werden, so suchen Sie in "mailer.cgi" mit einem Text-Editor nach folgendem: $mailprog = ""; und ersetzen es durch: $mailprog = "/usr/bin/sendmail"; # Siehe Anmerkung ! Anmerkung: Wobei "/usr/bin/sendmail" natürlich durch den richtigen Sendmailpfad ersetzt werden muss(ggf. beim Provider nachfragen). Dies ist lediglich NUR notwendig, wenn die obenstehende Fehlermeldung erscheint, ansonsten nicht. >------------------------------------------------------------------------------------------------------< 5. Feldnamen >------------------------------------------------------------------------------------------------------< Hier eine Liste vorgegebener Feldnamen. Ein Name eines Feldes sollte nur aus A-Z,a-z,0-9,- und _ bestehen. Alle Feldnamen, die keine speziellen Funktionen haben, können frei benutzt werden. Alle anderen Feldnamen sollten in dieser Anleitung beschrieben sein. action, to, from, fertig, subject, bcc, cc, back, check, checkz, next, nextsite, error, auto, aktiv, htmlresponder, html, urlcheck, mailcheck, space, anzahl, redirect, missing_fields_redirect, nosort, nofrom, browsersort, sort, sort_fields, required, recipient, session, to_email, email >------------------------------------------------------------------------------------------------------< 6. Felder >------------------------------------------------------------------------------------------------------< Sie können unendliche viele Felder jeder Art verwenden bei jedem Formular. Es können nicht nur unendlich viele Felder, sondern auch Datei-Anhänge benutzt werden. Folgendes ist beim Datei-Anhang zu beachten: Mehrere Felder für den Datei-Anhang sind möglich. Jedoch muss die Bezeichnung jedes Feldes mit "file-upload-" beginnen und mit einer Zahl(z.B: file-upload-01, file-upload-02, ...) enden. Zusätzlich kann ein Rename Feld für jede Datei genutzt werden: Zudem muss im Form-Tag bei Datei-Anhang folgendes stehen :
...
>------------------------------------------------------------------------------------------------------< Folgend wird gezeigt, wie Sie sogenannte multiple Dropdownboxen erstellen. Das heisst, in einer Dropdownbox können mehrere Auswahlmöglichkeiten markiert werden. Folgend wird gezeigt, wie Sie sogenannte Readonly Felder erstellen. Das heisst, der Betracher sieht ein ganz normales Feld, kann jedoch darin nichts verändern. >------------------------------------------------------------------------------------------------------< 7. Templates und Sprache >------------------------------------------------------------------------------------------------------< Es können auch mehrere Formulare erstellt und verwendet werden neben mehrseitigen Formularen. Erstellen Sie im Verzeichnis "templates" ein neues Formular z.B.: "test.html" und rufen Sie den Formmailer wie folgt auf: "mailer.cgi?action=index&temp=test.html" Nun wird das neue Formular angezeigt und verwendet(sofern der Aufruf wie oben beschrieben ausgeführt wird). Alternativ könnte dies auch bei einem Button als verstecktes Feld übergeben werden: Die INCLUDE-Funktion in den Templates http://www.ihredomain.tld/datei.html Einfach überall Einfügen wo Sie die Inhalte von externen Seiten integrieren wollen. Bitte zu beachten das hierzu das Modul LWP-Simple für Perl auf Server vorhanden sein muss. Sprachdateien im Formluar auswählen: oder als Wert übergeben: mailer.cgi?sprache=en_sprache.txt Uploadanzeige: oder als Wert übergeben: mailer.cgi?uploadanzeige=uploadanzeige.html >------------------------------------------------------------------------------------------------------< 8. Bestätigungsseite >------------------------------------------------------------------------------------------------------< Es können auch andere bzw. mehrere Bestätigungsseiten verwendet werden. Entweder Sie fügen es gleich im Form-Tag wie folgt ein:
...
"gesendet.html" steht dabei für den Dateinamen im Verzeichnis "templates", der danach angezeigt werden soll. Vorteil gegenüber einer Weiterleitung (unten beschrieben) als Bestätigung ist, dass alle Platzhalter hierbei verwendet werden können(z.B.: als Kontrolle für den Betrachter). Alternativ kann auch ein verstecktes Feld benutzt werden. Dies erzielt denselben Effekt und sieht wie folgt aus: Der Formmailer bekommt die Anweisung, eine andere Template zu laden. Alternativ kann auch eine Internet-Adresse angegeben werden: oder Nachteil bei der Alternative: Es können keine Platzhalter verwendet werden, z.B.: als Kontrolle für den Betrachter >------------------------------------------------------------------------------------------------------< 9. Fehlerseite >------------------------------------------------------------------------------------------------------< Es können auch individuelle Fehlerseiten verwendet werden. Dafür kann ein verstecktes Feld benutzt werden und dies sieht wie folgt aus: oder "gesendet.html" steht dabei für den Dateinamen im Verzeichnis "templates" der danach angezeigt werden soll. Vorteil gegenüber einer Weiterleitung (unten beschrieben) als Bestätigung ist, dass alle Platzhalter hierbei verwendet werden können(z.B.: als Kontrolle für den Betrachter). Anmerkung: Die Datei muss im Verzeichnis "templates" liegen und dabei kann <_fehler> verwendet werden für die Fehlermeldung als Platzhalter. Alternativ kann auch eine Internet-Adresse angegeben werden: oder Nachteil bei der Alternative: Es können keine Platzhalter verwendet werden z.B.: als Kontrolle für den Betrachter und/oder genauere Angaben zum Fehler. >------------------------------------------------------------------------------------------------------< 10. Einstellungen >------------------------------------------------------------------------------------------------------< $savefiles = "0"; # 0=AUS und 1=AN für Dateien speichern und nicht als Mail versenden. $savePfad = './mailer-data/save'; # Verzeichnis für die Dateien $offline = "0"; # 0=AUS und 1=AN für Domain-Check # Hier angeben, ob man nur von bestimmten Adressen Zugriff bekommt. (siehe domains.txt) $TimeZoneOffset = "0"; # Zeitzone # Diese Zeitzone einfach durch die jeweils eigene ersetzen oder stehen lassen. # Zeitzonen von -12 über 0 bis +12 $extaus = "0"; # Damit kann man die "Dateiendung überprüfen" Ausschalten. # Hiermit können sie die Dateiendungsüberprüfen ab- und anschalten. (1=AUS, 0=AN) $bytes = "150"; # In Kilobytes angeben # Hiermit können sie die Grösse der zu schickenden Datei begrenzen(Es muss in Kilobytes angegeben werden!). $error = "1"; # Fehlermeldung soll auch bei falscher Endung oder zu grosser Datei erscheinen - 1=AN 0=AUS $flood = "1"; # Floodsperre - 1 = AN 0 = AUS $floodzeit = "60"; # Floodzeit - Dies gibt an, wie lange jemand keine Nachricht absenden darf - Standard: 60 Sekunden $empfaenger = "name@domain.de"; # Nur Angeben wenn man in den Formularen kein Empfänger angeben möchte im Format name@domain.de # Definiert einen Empfänger. Sofern ein Empfänger angegeben ist, so werden die Empfänger im Formular ungültig und es wird nur noch dieser Empfänger genutzt. # Mehrere Empfänger können durch KOMMA getrennt werden. $ARabsender = ''; # Genau wie $empfaenger funktioniert diese Option für den Absender der automatischen Bestätigung (Autoresponder) # Optional, kann gesetzt werden wenn ein anderer Absender gewünscht wird, statt der Empfängeradresse. $multiple = "1"; # 1=Komma, 2=Leerzeile - Hiermit sind Felder mit mehrfacher Auswahl oder gleichen Feldnamen gemeint, wodurch diese getrennt angezeigt werden sollen. $felder = "1"; # 1=AN, 0=AUS # Damit werden, sofern man die Sortierung benutzt, nicht ausgefüllte Felder rausgeschnitten, damit die E-Mail wieder "gut" aussieht und lesbar ist. $felderLINE = "1"; # 1=AN, 0=AUS # Damit werden, sofern man die Sortierung benutzt, nicht ausgefüllte Felder rausgeschnitten, damit die E-Mail wieder "gut" aussieht und lesbar ist. $felderAUTO = "1"; # 1=AN, 0=AUS # Hiermit werden bei der automatischen generierung der E-Mail die leeren Felder aus- oder eingeblendet. $gen = "0"; # 1=AN, 0=AUS - Hiermit können automatisiert hiddenfelder generiert werden. Der Platzhalter ist für mehrseitige formulare $domains = ""; # Hier können Sie alle Domains eintragen, die als Empfänger akzeptiert werden sollen. # z.B.: domain.de, meinedomain.de usw. # Beachten: OHNE "http://" und "www." davor und auch kein "/" am Ende!!! # bzw. auch keine Pfade, lediglich die Domain. # Dazu nur Angeben, wenn die obere Funktion "$empfaenger" LEER ist. # Wenn Sie diese Funktion nicht nutzen möchten, einfach LEER lassen. $mailprog = ""; # Sollte die automatische Erkennung von Sendmail fehlschlagen. So kann hier manuell der Pfad eingetragen werden. # LEER lassen wenn der Sendmailpfad automatisch erkannt werden soll. $temppfad = "/tmp"; # Temppfad für das Zwischenspeichern von temporären Daten # Generell ist "/tmp" vorhanden ansonsten den absoluten Pfad zu einem Verzeichnis mit Schreibrecht(chmod 777) $smtp = "0"; # 1=AN/SMTP - 0=AUS/Sendmail # Hierbei wird festgelegt ob SMTP oder Sendmail genommen wird, um die E-Mails zu versenden. $timeout = "300"; # In Sekunden angeben, wielange das Script versuchen soll eine SMTP-Verbindung aufzubauen. $SMTPusername = ""; # Der Zugangsusername zum Versenden einer E-Mail per SMTP, freie SMTP-Server brauchen dies nicht. $SMTPpassword = ""; # Das Zugangspasswort zum Versenden einer E-Mail per SMTP, freie SMTP-Server brauchen dies nicht. $SMTPserver = "localhost"; # z.B.: smtp.domain.de ggf. beim Provider erkundigen. $SMTPtyp = "LOGIN"; # Je nach Konfiguration eines Servers werden die Zugangsdaten auch verschlüsselt übertragen. # Mögliche Typen sind ANONYMOUS, CRAM_MD5, DIGEST_MD5, EXTERNAL, LOGIN, PLAIN $POP3abfrage = "0"; # 1=AN - 0=AUS, Manche Server verlangen vor dem Versenden einer E-Mail, die Abfrage vom POP3-Postfach. $POP3username = ""; # Der Zugangsusername um E-Mails abzurufen. $POP3passwort = ""; # Das Zugangspasswort um E-Mails abzurufen. $POP3server = "pop3.domain.tld"; # z.B.: pop3.domain.de ggf. beim Provider erkundigen. $returnpathconfig = "0"; # 0=AUS und 1=AN - Return-Path # An den "Return-Path" gehen grundsätzlich die Fehlermeldungen vom MTA(Mail Transport System). # z.B.: bei unzustellbaren E-Mails oder wenn das Postfach voll ist. # Sollte es zu Versandproblemen kommen, dann diese Funktion deaktivieren. # Der "Return-Path" wird dann entsprechend der E-Mailadresse vom Empfänger angepasst, falls die Option aktiviert ist. $excel = "0"; # 0=AUS und 1=AN - CSV # Hiermit kann eine CSV-Datei erzeugt werden, weiteres in der Anleitung. # Diese Option muss aktiviert sein wenn der CSV- bzw. Excel-Export im Formular genutzt werden soll. # Die E-Mail wird trotzdem versendet. Datei-Anhänge werden nicht mitgespeichert. $checkboxOption = "0"; # 0=AUS und 1=AN # Hierdurch werden Checkboxen ohne Valuewert gefiltert, Browser senden beim Anklicken ohne Valuewert ein "on" als Wert mit. $flock = "1"; # 0=AUS - 1=AN # Verhindert Datenverluste bei einem gleichzeitigen Zugriff. $gzip = "0"; # 0=AUS - 1=AN # GZIP Komprimierung - Um den Inhalt schneller und platzsparender zu Übertragen! $internerPfad = '.'; # Interner Pfad zu mailer.cgi ohne Dateiname. # Nur Angeben wenn Fehlermeldungen kommen das Dateien nicht vollständig gefunden worden! /domains.txt: Hier die Domain(s) eintragen, die Zugriff haben sollen auf das Script per Link/Formular. Dies ist nur notwendig, wenn die Funktion im Kopf von mailer.cgi aktiviert ist. /ips.txt: Hier die IP(s) eintragen, die keinen Zugriff haben sollen auf das Script per Link/Formular. Dies ist nur notwendig, wenn die Funktion im Kopf von mailer.cgi aktiviert ist. /templates/index.html: Die Datei können sie so anpassen, wie SIE es benötigen. <_m> ist der Platzhalter für Empfänger, Absender und Betreff. <_ausgabe> ist der Platzhalter für Meldungen und Ausgabe des Ergebnisses. /templates/error.html: Hier stehen die eventuellen Fehler, die aufgetreten sind. Kann man ändern, wie man es braucht... /templates/fertig.html: Hier wird bestätigt, dass das Formular verschickt wurde. Kann man ändern, wie man es braucht... z.B.: das Formular aus index.html auch hier rein setzen. /ext.txt: Hiermit können Sie die Endungen der Datei-Anhänge bestimmen. /zensur.txt: Wörter zensieren. Wenn diese Wörter beim Versenden vorkommen, dann wird es nicht versendet und es erscheint eine Fehlermeldung. 1 Wort pro ZEILE ! /sperre.txt: Hiermit können Sie E-Mailadressen ausschliessen (also Sperren), die nicht zugelassen werden als Absender bzw. alle Felder, die als E-Mail-Pflichtfeld im Formular angegeben wurden. Entweder z.B.: name@domain.de für eine einzelne E-Mailadresse oder *@domain.de für eine ganze Domain. /sperre-empfaenger.txt: Hiermit können Sie E-Mailadressen ausschliessen (also Sperren), die nicht zugelassen werden als Empfänger. Entweder z.B.: name@domain.de für eine einzelne E-Mailadresse oder *@domain.de für eine ganze Domain. /flood.txt: Nichts verändern für die Floodsperre. /mail.txt: Statt $domains, domains.txt und $empfaenger kann auch diese Datei verwendet werden. Beispielsweise: (Gross- und Kleinschreibung wird beachtet !) Allgemein=webmaster@domain.de Support=support@domain.de Doppelt=test@domain.de,zweite@domain.de Vor dem Zeichen = dürfen nur A-Z, a-z, 0-9, - und _ verwendet werden. Im Formular könnte das Feld dann so aussehen: oder auch 2 Mailadressen: (alternativ können in der Datei auch durch KOMMA getrennt mehrere angegeben werden.) oder als Dropdownbox mit mehrfacher Auswahl: Natürlich ist dies mit allen Formen möglich z.B. auch Radio- oder Checkboxen /responder und /send Legen Sie soviele Textdateien an, wie benötigt werden. >------------------------------------------------------------------------------------------------------< Falls Sie den Autoresponder nutzen wollen, müssen sie diese Zeile einfügen in das Formular: Hiermit kann eine andere Vorlage für den Text, der an Sie gesendet wird, mit den Daten eingetragen werden. 1.txt ist durch die jeweilige Datei zu ersetzen, damit die gewünschte Template beim Versenden genommen wird. Der Dateiname sollte lediglich aus Zahlen und Buchstaben bestehen und im Verzeichnis "send" liegen. Auch erlaubt sind Unterverzeichnisse: Hiermit aktivieren Sie den Autoresponder(automatische Rückantwort). Damit erhält derjenige, der das Formular versendet hat, automatische Antwort. 1.txt ist durch die jeweilige eigene Datei zu ersetzen(z.B.: 2.txt), damit die gewünschte Template beim Autoresponder genommen wird. Der Dateiname sollte lediglich aus Zahlen und Buchstaben bestehen und im Verzeichnis "responder" liegen. Auch erlaubt sind Unterverzeichnisse: Damit wird HTML bei dem Formular aktiviert und somit die E-Mail als HTML versendet. Damit wird HTML beim Autosponder aktiviert und die automatische Rückantwort als HTML versendet. Für beide, sowohl beim Versenden als auch beim Autoresponder und "fertig.html" kann man folgende Platzhalter einfügen: <_ausgabe> gibt alle Felder aus (Datei-Anhang wird nur beim versenden mitgeschickt, nicht beim Autoresponder) <_name> = Inhalt <__name> = Name: Inhalt Das "name" bildet dabei den Feldnamen, der im Formular für das Feld verwendet wurde. Sie können damit das Layout der E-Mail und Bestätigungsseite individuell gestalten und die Felder sortieren. Der Platzhalter für automatische Sortierung / Einfügen "<_ausgabe>" sollte bei manueller Sortierung herausgenommen werden. "name" der Platzhalter der beim jeweiligen Feld als name benutzt wurde. Inhalt ist eben der Inhalt, der vom Formular von dem Namen übergeben wurde. Feste Platzhalter: <_subject> = Betreff <_to> = E-Mailadresse vom Empfänger <_from> = E-Mailadresse vom Absender Einfach weitere Templates anlegen, wenn sie mehrere Formulare haben! >------------------------------------------------------------------------------------------------------< 11. Sortierung: >------------------------------------------------------------------------------------------------------< Generell werden die Feldnamen ohne spezielle Übergabe alphabetisch nach dem Feldnamen sortiert. Sortierung vom Browser ist mit folgender Zeile möglich: Für nicht sortierte Felder müsste die Zeile so aussehen: Alternativ kann die Sortierung auch durch ein verstecktes Feld im Formular erfolgen: oder Die Feldnamen durch Komma TRENNEN ! Wenn ein Feld nicht unter "sort" aufgeführt ist, wird es einfach angehängt, ausser bei "browsersort" ! >------------------------------------------------------------------------------------------------------< 12. Rechnen >------------------------------------------------------------------------------------------------------< Die Funktion muss mit dem Wert $rechnen auf 1 gesetzt in der Datei mailer.cgi werden um dies zu Aktivieren. Aus Sicherheitsgründen ist eine Lösung über Javascript nicht nur Benutzerfreundlicher sondern auch Sicherer. Trotzdem beinhaltet das Script eine Serverseitige Rechenoperation mit einem Timeout von max. 5 Sekunden pro Berechnung. Sie können sowohl in den folgenden Seiten als auch in allen E-Mail Templates die Rechenoperationen nutzen. [<( [alter] / 3 )>] - erzeugt das Ergebnis von [alter] dividiert durch 3. [<( ([feld1] + [feld2] + [feld3]) * [steuer] )>] - addiert die Felder und multipliziert die Summe mit dem Feld Steuer. Alle Rechenoperationen müssen mit bestimmten Zeichenfolgen geschrieben werden: [<( rechenoperationen )>] >------------------------------------------------------------------------------------------------------< 13. Excel und CSV >------------------------------------------------------------------------------------------------------< Es ist möglich, das die Formulardaten zusätzlich in einer CSV-Datei gespeichert werden, damit diese z.B. per Excel eingelesen werden können. Im Formular muss das folgende Feld integriert sein: In mailer.cgi muss $excel auf 1 gestellt sein, damit es funktioniert. Wenn das Feld nicht integriert wird, so speichert das Script die Daten automatisch in /mailer-data/csv.dat Es ist möglich die Daten ohne Dateien nur in der Datei abzulegen ohne eine E-Mail zu senden: Autoresponder trotz der Option nextsite auslösen: Im Verzeichnis "mailer-data" wird diese Datei angelegt und jeweils ergänzt wenn das Formular erneut versendet wurde. siehe auch http://de.openoffice.org/ für OpenOffice. >------------------------------------------------------------------------------------------------------< 14. Mehrseitige Formulare und Platzhalter: >------------------------------------------------------------------------------------------------------< Sie können ebenfalls mehrseitige Formulare erstellen. Dafür steht die Option "" zur Verfügung. Durch diesen Platzhalter werden alle Felder mit Ausnahme von Datei-Anhang als hiddenfelder generiert. (nur wenn am Anfang von mailer.cgi die option $gen auf den Wert 1 gesetzt wurde!) Sie müssen dazu einfach die Möglichkeit ausnutzen, dass Sie statt auf eine Bestätigungsseite (siehe ganz unten) auf ein weiteres Formular leiten. Die Bestätigungsseite (fertig.html ist die Standardseite) müsste dann den oben erwähnten Platzhalter enthalten. Ansonsten gibt es die Möglichkeit, auch alle Felder per Hand zu ergänzen, siehe oben (<_name>, <__name> ...) Somit könnte man nahezu endlos lange Formulare erstellen. Leider können zur Zeit keine Datei-Anhänge mit übergeben werden. Sollten Sie Datei-Anhänge benötigen, so wird empfohlen, bei mehrseitigen Formularen dies auf die letzte Seite zu platzieren. Mithilfe vom folgenden versteckten Feld kann das nächste Formular nach dem Senden geladen werden: Anmerkung: Die Datei muss im Verzeichnis "templates" liegen. Damit keine E-Mail versendet wird, muss folgendes noch ins Formular rein: Also ein verstecktes Feld mit dem Namen "nextsite" und Wert "1", damit keine E-Mail versendet wird. >------------------------------------------------------------------------------------------------------< Spezielle ENV-Platzhalter: <_env-proxyip> = Proxy-IP, sofern derjenige über einen Proxy surft. <_env-ip> = Normale IP-Adresse vom User. <_env-browser> = Informationen über den Browser <_env-herkunft> = Die Herkunft vom User <_env-user> = Sofern der Formmailer hinter einem Htaccess Schutz sitzt so dient der Platzhalter für den eingegeben Usernamen. Diese speziellen ENV-Platzhalter können auch im Autoresponder und "fertig.html" verwendet werden. >------------------------------------------------------------------------------------------------------< Spezielle Datum und Zeit-Platzhalter: <_datum> = FORM E-Mailadresse am [Tag als Wort], [Tag] [Monat als Wort], [Jahr] um [Stunde]:[Minute]:[Sekunde] <_thisday> = Tag als Wort <_thismonth> = Monat als Wort <_year> = Jahr als Zahl <_mday> = Tag als Zahl <_hour> = Stunde <_min> = Minute <_sec> = Sekunde Diese speziellen Platzhalter können auch im Autoresponder und Bestätigungsseiten verwendet werden. >------------------------------------------------------------------------------------------------------< CID-Bilder:(integrierte Bilder in HTML E-Mails) Als erstes muss sich das Bild im Anhang befinden (z.B.: Datei-Anhang) Es wird wie normale Bilder eingefügt in HTML, jedoch die Besonderheit ist, das "cid:" vor dem Dateinamen: Wenn der Datei-Anhang den Namen "file-upload-01" hat, so wird dies in den Platzhalter geschrieben! >------------------------------------------------------------------------------------------------------< Man kann auch statt "hidden" halt "text" hinschreiben. Dies ist der wert wohin die E-Mail geschickt werden soll. Mehrere Empfänger können durch KOMMA getrennt werden. Statt name="to" kann auch name="recipient" oder name="to_email" verwendet werden. >------------------------------------------------------------------------------------------------------< oder Man kann auch statt "hidden" halt "text" hinschreiben. Dies ist der wert woher die E-Mail kommt bzw. der Absender. Der Betreff der E-Mail. Dies MUSS enthalten sein, damit das Script weiss, das eine E-Mail verschickt werden soll. oder Damit kann man Eingabe Felder definieren die Pflicht sind. Damit kann man Eingabe Felder definieren die Pflicht sind und nur Zahlen enthalten dürfen. Damit kann man Eingabe Felder definieren die Pflicht sind und nur Buchstaben enthalten dürfen. Damit kann man Eingabe Felder definieren die Pflicht sind und nur Buchstaben+Zahlen enthalten dürfen. Damit kann man Eingabe Felder definieren die Pflicht sind und nur Buchstaben+Leerzeichen+Zahlen enthalten dürfen. Damit kann man Eingabe Felder definieren worin alle voranstehender und abschliessender Freiplatz gelöscht wird. Damit kann man Eingabe Felder definieren, die Pflicht sind und mindestens ein Leerzeichen enthalten. (z.B.: für "Vor- und Nachname", "Postleitzahl Stadt" und ähnliches geeignet.) Hiermit ist es möglich, direkt wieder auf's Formular nach dem erfolgreichen Versenden zurückzuleiten. Entspricht dem normalen CC; mehrere E-Mailadressen durch Komma TRENNEN ! (funktioniert nur wenn $empfaenger nicht gesetzt ist!) Entspricht dem normalen BCC; mehrere E-Mailadressen durch Komma TRENNEN ! (funktioniert nur wenn $empfaenger nicht gesetzt ist!) Damit kann man die Ausgabe in der E-Mail verändern. Es steht nun nichtmehr der Name des Formular-Feldes mit drin. (z.B.: "name@domain.de" statt "From: name@domain.de") Wenn sie mehrere Felder auf Richtigkeit der URL prüfen wollen, dann nutzen sie dieses versteckte Feld. Wenn sie mehrere Felder auf Richtigkeit der E-Mailadresse prüfen wollen, dann nutzen sie dieses versteckte Feld. Alternative möglichkeiten: Der Formmailer unterstützt auch eine art dynamische festlegung. Also Schalter vor den Feldnamen ohne zusätzliche versteckte Felder. r - Dies ist Pflichtfeld. e - Dies muss eine E-Mailadresse sein. u - Dies muss eine Internetadresse sein. d - Dies darf nur Zahlen enthalten. (0-9). a - Dies darf nur Buchstaben enthalten. (A-Za-z) w - Dies darf nur Buchstaben und Zahlen enthalten. (A-Za-z0-9) l - Dies darf nur Buchstaben, Leerzeichen und Zahlen enthalten. s - voranstehender und abschliessender Leerzeichen werden gelöscht. Ergebnis: "Fax 02203" p - Hierbei muss ein Leerzeichen enthalten sein. Kombiniert ist dies auch möglich: Hinweis: Diese Variante darf bei speziellen Feldnamen nicht verwendet werden. (siehe Punkt 5) >------------------------------------------------------------------------------------------------------< 15. Kompatibilität >------------------------------------------------------------------------------------------------------< Der Formmailer unterstützt in begrenzten Rahmen die Formulare von anderen Scripten und Editoren ohne Veränderung. Generell wurde in dieser Anleitung dabei geschrieben falls mehr als ein Feldname für einen Befehl erlaubt ist. >------------------------------------------------------------------------------------------------------< 16. Sicherheitshinweis >------------------------------------------------------------------------------------------------------< Wenn weder die Option $domains noch $empfaenger genutzt wird, so entsteht ein Sicherheitsrisiko. Sie sollten entweder $domains oder $empfaenger nutzen um "Spam" zu verhindern. Die Funktion CC und BCC als Feldname kann bei gesetzten $empfaenger nicht benutzt werden. Alternativ kann die Option "mail.txt" (siehe Punkt 9) genutzt werden, also das Bezeichnungen statt E-Mailadressen im Formular stehen. Damit die E-Mailadresse vor "E-Mailspider" sicher ist, natürlich gilt das für die Option $empfaenger auch. Die Option "domains.txt" reicht eventuell nicht aus um den Formmailer vor Missbrauch vollständig zu schützen ! >------------------------------------------------------------------------------------------------------< 17. History >------------------------------------------------------------------------------------------------------< v1.74 vom 31.08.2009 - Zeichensatz kann nun angegeben werden. - Umbenennen von Datei-Anhängen per Textfeld. - Integration einer Option für Sprachdatei und IP-Check. v1.73 vom 12.10.2007 - Integration weiterer Optionen für die CSV-Datei v1.72 vom 04.06.2007 - INCLUDE-Funktion für Internetadressen in allen HTML-Templates integriert. v1.71 vom 08.12.2006 - Grafikcode wurde in den Formmailer integriert. v1.70 vom 27.03.2006 - Serverseitige Rechenoperationen wurden integriert. - Uploadanzeige wurde durch Dateiname, Dateizahl und automatische Umrechnung in KBytes, MBytes und GBytes erweitert. - Kleinere Fehler in der Anleitung beseitigt. v1.69 vom 28.09.2005 - Option $felderAUTO um auch leere Felder in der generierten E-Mail anzuzeigen. - Bugfix: Leere Feldernamen oder Felderwerte werden nicht mehr mit NULL verwechselt. v1.68 vom 21.09.2005 - Bei der Floodsperre wird die noch vorbleibene Zeit nun auch in Minuten und Stunden angezeigt, statt nur in Sekunden. - Option $checkboxOption wurde integriert, um Checkboxen ohne Valuewert auszublenden. - Bugfix: Die Sortierung durch "browsersort" wurde durcheinander geworfen wenn eine bestimmte Menge an Feldern erreicht worde. - Bugfix: Das Benutzen von "sort" und "browsersort" ergab eine falsche Sortierung, bei Angabe von "browsersort" wird "sort" ignoriert. v1.67 vom 18.09.2005 - Für die Codierung der E-Mails wird nun das Modul MIME::Base64 benutzt, falls vorhanden. - SMTP-Unterstützung wurde integriert und Windows wird nun unterstützt. - CC und BCC können nun durch die Datei mail.txt ebenfalls mit Empfängern versehen werden. - Der Wert "Date" und "Message-ID" im Header der E-Mail werden nun vom Script generiert. - Mehrere Fehlermeldungen integriert, die angezeigt werden wenn die Templates oder dergleichen nicht gefunden werden, auch wenn error.html fehlt. v1.66 vom 12.09.2005 - Die E-Mailadresse vom Absender des Autoresponder kann per $ARabsender selbst bestimmt werden, optional. - Die Option "browsersort" wurde integriert, um eine sortierte generierte Ausgabe wie vom jeweiligen Formularaufbau zu ermöglichen - Bei multiplen Feldern können diese per Komma oder Leerzeile getrennt werden, siehe Option $multiple - Bugfix: Checkboxen mit dem Wert "on" werden ausgeblendet. - Bugfix: Das Feld "nosort" wurde in der generierten Ausgabe mitangezeigt. - Bugfix: Leerzeilen werden weitgehend mit ausgeblendet bei Platzhaltern um sinnlose leere Zeilen zu unterbinden. - Bugfix: Bei $empfaenger muss kein \ vor dem @ mehr gesetzt werden. v1.65 vom 11.08.2005 - Bugfix: Fehler bei Exceldaten wenn die Vorschau benutzt wurde, wurden die Daten doppelt (unkorrigierte und korrigierte) gespeichert. - Bugfix: Fehler bei Eingabefeldern in der POST-Übergabe behoben, manchmal wurden PLUS-Zeichen unterschlagen. v1.64 vom 13.12.2004 - Bugfix: Fehler bei HTML-eMails mit Datei-Anhang behoben. - Bugfix: Fehler wenn eine Grafik als "Submit"-Button genutzt wurde, behoben. v1.63 vom 30.09.2004 - Bugfix: Fehler bei E-Mailadressen mit "_name_@domain.tld" behoben. - Bugfix: Fehler bei <_r_text> und <_text> in der Ausgabetemplate(z.B.: fertig.html) behoben, es können nun beide Platzhalter verwendet werden. - alle Formulardaten können nun als CSV-Datei gespeichert und z.B. in Excel importiert werden. - Fehlermeldungen werden nicht mehr einzelnt auch wenn mehrere Fehler vorkommen ausgegeben, sondern alle Fehler. v1.62 vom 25.08.2004 - Bugfix: Fehler bei Umlauten behoben. - Bugfix: Fehler bei HTML E-Mails behoben. v1.61 vom 05.08.2004 - Sortierung wurde erweitert, es müssen nicht mehr alle Felder angegeben werden. - In der Datei "sperre-empfaenger.txt" können nun Empfängeradressen gesperrt werden. - diverse Fehler wurden behoben. v1.60 vom 25.07.2004 - Probleme mit Sonderzeichen wurde behoben. - Ein Beispiel für intelligente Uploadfelder wurde in indexjavascript.html integriert. v1.59 vom 30.06.2004 - Die Anleitung wurde erweitert. - Unsortiert ist nun möglich. - Uploadanzeige beim hochladen integriert.(optional) - Eine weitere Möglichkeit um die E-Mailadresse zu übergeben, wurde integriert. - diverse Formulare und Beispiele zum besseren Verständnis beigelegt. - Vorschaufunkion wurde erleichtert. v1.58 vom 30.03.2004 - Die Anleitung wurde überarbeitet. - Ohne versteckte Felder sind nun ähnliche Optionen dynamisch möglich. - Der Dateiname "formmail.cgi" wurde absichtlich in "mailer.cgi" geändert um Probleme zu vermeiden. - Fehler das Felder in der Ausgabe doppelt erschienen wurde behoben. - In der Einstellung $domains können nun vollständige E-Mailadressen UND Domains verwendet werden. - Die Felder CC und BCC werden durch $domains nun auch überprüft. - SSL wird nun unterstützt. v1.57 vom 02.11.2003 - Formulare von einigen anderen Formmailern können nun verarbeitet werden ohne Änderung! (ggf. "formmail.cgi" in den entsprechenden Dateinamen umbenennen) - Sendmailpfad kann bei Bedarf manuell angegeben werden statt der automatischen Erkennung. - Es können nun mehrere Empfänger durch KOMMA getrennt eingegeben werden. v1.56 vom 21.10.2003 - Die Dokumentation wurde leicht verbessert und von Fehlern befreit. v1.55 vom 21.08.2003 - Ein Fehler bei CC und BCC wurde behoben. - Die Sortierung ist nun auch per Hiddenfeld möglich. v1.54 vom 11.08.2003 - Sperren von E-Mailadressen möglich. - Kein Verzeichnis "files" für Datei-Anhang mehr nötig. - Dokumentation minimal ergänzt. v1.53 vom 30.06.2003 - Fehler bei der Erkennung von einem Datei-Format behoben. - kleinere Fehler wurden beseitigt. v1.52 vom 14.06.2003 - Dokumentation leicht verbessert. - "subject" (Betreff) ist nun kein muss Pflichtfeld mehr. - Die Felder "to" und "form" müssen bei mehrseitigen Formularen nur noch auf der letzten Seite angegeben werden. - Nun können Felder auf Leerzeichen überprüft werden. Sinnvoll bei Vor- und Nachname und ähnliches. - Ausgefüllte Pflichtfelder werden nun als Fehler erkannt auch wenn nur Leerzeichen eingegeben wurden. - Es können nun eigene Fehlerseiten zu jedem Formular erstellt werden zusätzlich zur Weiterleitung an Fehlerseiten. - Wenn der Datei-Anhang zugross ist wird dies nun sowohl vor und auch nach der Speicherung erkannt und als Fehlermeldung dargestellt. - Flood-Protection minimal verbessert. - Alle bekannten Fehler wurden behoben. v1.51 vom 31.03.2003 - Fehler im Text bei Verwendung von Quotes auch Anführungszeichen genannt. Statt Text wurde HTML-Code angezeigt. - bessere Flexibelität bei Datum- und Zeitangaben. v1.50 vom 28.11.2002 - bessere HTML-Unterstützung. - bessere integration von mehrseitigen Formularen. - Flood-Protection verbessert. Nun wird Cookie- und IP-Sperre eingesetzt. v1.49 vom 12.11.2002 - Mehr Templates bei der Ausgabe möglich.(fertig.html) - Flood-Protection überarbeitet. v1.48 vom 10.10.2002 - Neue Sicherheitsfunktion wurde hinzugefügt. - Alle bekannten Fehler wurden behoben. v1.47 vom 6.8.2002 - Einige ENV-Variablen hinzugefügt um die Sicherheit zuerhöhen. v1.46 vom 3.8.2002 - HTML E-Mails sind nun möglich. - Sogenannte CID-Bilder in HTML E-Mails(direkt integrierte Bilder die sich im Anhang befinden jedoch sofort wie bei einer HTML-Seite sichtbar sind und nicht aus dem Internet geladen werden müssen.) sind nun möglich. - Beispiel in Javascript damit die max. Zeicheneingabe einer Textbox begrenzt werden können. v1.45 vom 27.5.2002 - Falls Sortierung benutzt wird können nun nicht ausgefüllte Felder automatisch rausgeschnitten werden. v1.44 vom 16.5.2002 - Nun kann man den Empfänger definieren dabei ist es unabhängig was im Formular steht. - Ein kleiner Bug gefixt. v1.43 vom 20.4.2002 - Quellcode bereinigung. - Pflichtfelder die nur Zahlen enthalten dürfen sind nun möglich. v1.42 vom 16.3.2002 - Floodsperre wurde im Quellcode verschoben und wird nun erst nach den Pflichtfeldern geprüft! - Es werden nun sehr viel mehr Sendmailpfade automatisch erkannt somit läuft das Script auf noch mehr Servern. :-) - diverse minimale optimierungen wurden vorgenommen. v1.41 vom 4.2.2002 - Fehlermeldungen wurden verbessert. Insbesondere bei Standard Pflichtfeldern! - Der Fehler das in der E-Mail die E-Mailadresse vergessen wurde (im Text) - Minimale verbesserungen v1.4 vom 2.1.2002 - Floodsperre repariert, optional abschaltbar und Timeout einstellbar. - Multiple Dropdownboxen sind wieder möglich (mehrfachauswahl) - Neue Sortierungs möglichkeit - Mime-Types entfernt werden nun automatisch erstellt. - Zeitzone besser Einstellbar. - Templates für das Versendung auf Unendlich erweitert. - Script optimiert und verbessert. v1.3 vom 18.9.2001 - Zensur wurde eingebaut. - Floodsperre - IP und Cookiesperre => 60 Sekunden - URL und E-Mailadressen check für unendlich Felder. - IP und URL zum Script wird nun im Kopf von der E-Mail mitgeschickt. v1.2 vom 11.8.2001 - Bugfix im Datei-Anhang. Dies funktionierte nicht überall. v1.1 vom 14.7.2001 - Datei-Anhang (unendlich) - Autoresponder (unendlich) v1.0 vom 4.7.2001 - Erstes Release >------------------------------------------------------------------------------------------------------< 18. Lizenz >------------------------------------------------------------------------------------------------------< Die Lizenzbestimmungen finden Sie im Entpackten Verzeichnis unter lizenz.html. >------------------------------------------------------------------------------------------------------< >------------------------------------------------------------------------------------------------------< Euer Stefanos - www.coder-world.de - support@coder-world.de