CMAIL.CGI - ein CGI-Programm für Mailformulare

Inhalt

Allgemein

Benutzung

Eigenschaften

Fehlerquellen

Beispiel

Copyright

Autor

Allgemein

CMAIL.CGI ist ein CGI-Programm, daß es erlaubt, von einem HTML-Formular aus eine oder mehrere Emails zu versenden. CMAIL.CGI ist über eine Konfigurationsdatei weitgehend konfigurierbar, man muß als Webmaster also nicht im Sourcecode herum schreiben.
CMAIL.CGI ist in C++ geschrieben und ist sowohl im Source Code als auch als ELF-Binary (für Linux) lieferbar. Dadurch, daß es in C++ geschrieben ist, kann man es auch relativ leicht auf andere Plattformaen übertragen. Das Programm basiert auf der CGI-Library "cgiClass" von Kelly Black, Universität von New Hampshire.

Benutzung

Im HTML-Formular muss man im action Tag folgendes angeben:

<form action="http://server/cgi-bin/cmail.cgi" method="POST" name="CMAIL">

Dann können beliebig viele Eingabe Felder oder Listen kommen. Wenn man möchte, daß ein bestimmtes Feld vom Benutzer unbedingt ausgefüllt werden soll, dann muß man dem Feldnamen einen Stern voransetzen:

<input type="text" name="*var_1">

Man sollte dann allerdings auch auf der Seite den Benutzer darauf hinweisen, daß dieses Feld erforderlich ist, was man i.d.R. auch mit einem Stern macht.
Im Formular MUSS ein Feld namens "subject" enthalten sein, welches unbedingt einen Wert enthalten muß:

<input type="hidden" name="subject" value="Nachricht vom Web-Formular">

Man kann zu diesem Zweck z.B. auch ein Listenfeld benutzen, in welchem der Benutzer sich aus mehreren Möglichkeiten Eine aussuchen könnte.
Ausserdem muss am Ende natürlich ein "Submit" Button stehen, damit das Formular abgeschickt werden kann:

<input type="submit" name="submit" value="Abschicken">

Damit man alle Möglichkeiten des Mailers ausnutzt, müssen ausserdem noch die folgenden HTML-Seiten erstellt werden:
  • eine Seite, die dem Benutzer zeigt, daß die Mail erfolgreich versendet worden ist
  • eine Seite, die dem Benutzer zeigt, daß ein oder mehrere Felder nicht ausgefüllt waren
  • und eine Seite, die anzeigt, daß ein allgemeiner Fehler aufgetreten ist

Eigenschaften

Über die Konfigurationsdatei cmail.rc kann man folgende Punkte einstellen:

  • mailto- ein oder mehrere Empfänger, mehrere Emailadressen werden durch ein Leerzeichen getrennt
  • success- die HTML-Seite, die angezeigt werden soll, wenn die Mail erfolgreich versendet werden konnte
  • req_err- diese Seite wird angezeigt, wenn ein Benutzer ein oder mehrere erforderliche Felder nicht ausgefüllt hat
  • ser_err- diese Seite wird angezeigt, wenn ein allgemeiner Fehler aufgetreten ist, mehr dazu siehe unten

Wenn die mailto Variable keinen Wert enthält, wird eine Standard-Fehler Seite angezeigt.
Wenn die HTML-Seiten Variablen keinen Wert enthalten, werden Standard Seiten angezeigt. man kann dies am Besten ausprobieren, indem man den Mailer direkt vom URL-Eingabefeld des Browsers aus startet:

http://domain/cgi-bin/cmail.cgi

Fehlerquellen

Mögliche Fehlerquellen:

  • Die Konfigurationsdatei ist unvollständig oder enthält falsche Werte. In solchen Fällen wird die Allgemeiner Server Fehler Seite angezeigt
  • In der HTML-Seite mit dem Formular befindet sich kein "subject " Feld, oder es gibt Eines, aber es enthält keinen Wert
  • Der Mailer kann die Konfigurationsdatei nicht öffnen, weil z.B. die Zugriffsrechte falsch vergeben sind. Setzen Sie sich in so einem Fall mit Ihrem Server Administrator in Verbindung oder ändern Sie die Rechte, wenn Sie das können.
  • Die Konfigurationsdatei liegt in einem nicht lesbaren Format vor. Das kann z.B. passieren, wenn man die Datei unter Windows95 editiert und dort dann speichert. Unter Windows, wie auch unter DOS werden in Tesxtdateien die Zeilenumbrüche mit in die Datei geschrieben, was dann unter Unix so aussieht: ^Man jedem Zeilenende. Beheben kann man das entweder, indem man die Datei mit einem Editor bearbeitet, der Textdateien auch im Unix-Format speichern kann, wie z.B.SUPER Notetab , oder indem man die Datei direkt auf dem Server mit dem Editor vi bearbeitet.
  • Die Konfigurationsdatei enthält ein doer mehrere leere Zeilen. Man behebt das, indem man einfach in den betreffenden Zeilen ein #-Zeichen an den Zeilenanfang setzt, welches als Kommentar gewertet wird.
  • Die Einträge in der Konfigurationsdatei liegen in der falschen Reihenfolge vor. Nehmen Sie die Original cmail.rc als Vorlage zum Erstellen der Konfiguration.

Beispiel

Eine Beispiel Anwendung von CMAIL.CGI kann man auf meiner Webseite bewundern:

www.rentacook.de/cc/kontakt.html

Copyright

Das Programm CMAIL.CGI ist Copyright geschützt. Der Code darf nur mit meiner ausdrücklichen Genehmigung verwendet werden. Änderungen im Code sind zulässig zum Zwecke der Anpassung an andere Plattformen. Weitergehende Änderungen sind nicht ohne meine Genehmigung gestattet.
Die CGI-Library cgiClass unterliegt dem Copyright des Autors Kelly Black, Universität von New Hampshire. Teile des Codes dieser Library unterliegen dem Copyright der NCSA.

Autor

Autor von CMAIL.CGI ist Thomas Linden, München. Mit mir kann man am Besten per Email Kontakt aufnehmen: tom@rentacook.de