Beat: Formmailer-Projekt

Beitrag lesen

Den würde ich in zwei Varianten vorstellen:

  1. pipe auf sendmail;
  2. mit dem Modul Net::SMTP;

Ich bin NUR für die Version mit Net::MTP
Die Sendmail Pipe ist einfach zu riskant, und gerade in diesem Punkt sollte man den User nicht im Regen stehen lassen.

Wäre es was für Dich, das 1. Teil mit sendmail zu überarbeiten? Ich schreibe dann dafür einen Formmailer, der mit Net::SMTP geht und liefere dazu auch ein Script mit dem der Formmailer lokal getestet werden kann (Net::SMTP::Server).

Eine dritte Variante (hab ich auf meinem Web rolfrost.de) besteht darin, auf den Maildienst zu verzichten und eine eigene Mailbox auf dem Webserver einzurichten. Die Nachrichten werden dabei in einer MySQL-Tabelle gespeichert und von dort mit einem Kommandozeilen-Perl-Script abgeholt ähnlich wie POP3.

Wg. der Einheitlichkeit: Für das Formular vier Felder machen,
Absender-email
Name
subject
maessage

und mit <fieldset> arbeiten, nicht mit Tabelle ;-)

Ideen für Anforderungen, Leistung etc?

Ich werde mir die Perl-Kapitel im aktuellen SELFHTML heute mal durchlesen und schauen, was es zu überarbeiten gilt. Auf den ersten Blick ist es sehr viel was da steht, vielleicht sogar zuviel. Die Basics sind:

  • lokaler Webserver für Perl/CGI
  • Hello World mit Perl
  • Parameterübergabe mit GET und POST
  • ParameterParsing mit CGI.pm
  • Datenbankanbindung

Ich sehe den Formmailer als modulares Ding.
Zu lernzwecken soll jedes Teil erklärt werden.
Aber das ganze Bundle soll auch installationsbereit einfach heruntergeladen werden können.

Was mir wichtig wäre.
Der Formmaile muss als Perl-Modul und als Standalone Anwendung tauegen.
Das heisst wir schreiben ein Modul und einen Wrapper dazu.

Der Formmailer sollte komplett durch ein externes File konfiguriert werden können. Hier würde ich ein File im XML Format vorschlagen.

Alle Felder (Typ, Name, Id, pflicht, erlaubte zeichen, max-Länge) werden im XML Format festgelegt.
Es sollen mehr als eine Empfängeradresse definiert werden können, in dem Fall wäre eine Selectbox den Empfänger anwählen lassen.
Dadurch ergibt sich die "Schwierigkeit" eines kleinen Parsers.

Es soll möglichst kein MySQL vorausgesetzt werden.
(Stichwort technik-Abhängigkeit)

Weitere Leistungen des Formmailers:

HTML Output, Semantik, verzicht auf Tabellen
Die Gruppierung von Felder wird im XML Konfigfile deklariert.
Im restlichen markup möglichst mit Definitionslisten

Lediglich ein Art Default CSS-File zur Initialisierung wird geboten
Browsertest

Spamschutz:
Cookies zum Absenden erforderlich
Option: Der Formmailer kann pro Absenderadresse nur einmal innerhalb einer Zeitfrist absenden.
Pro Cookie kann nur einmal in einer Frist gepostet werden
Validierung des HTTP Requests (Accept Header muss vorhanden sein)
Spamschutz wird im Konfigfile festgelegt

Speicherung von Cookies:
use Storable ist der direkteste Weg für alle Arten temporäre Daten

Mein Vorschlag.
Du kannst ja mal das Net::SMTP Teil übernehmen.
Alexander Brock kann hier sicher seinen Senf dazugeben, da er das Sendmail Problem gut kennt.

Vorsicht: Charset UTF8 wenn Minimalanforderung Perl 5.6

Wer mit mir zum Projekt kommunizieren will: Mailadresse im Head.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische