Hi!
@Sven, Du hast schon bessere Skripts geschrieben. Die Programmiertechnik "Affenformular" wäre hier zweckmäßig, also kein redirect() nach dem Submit, ein redirect() bedeutet immer ein die('hinsichtlich Fehlerbehandlung'), sowohl für den Anwender als auch für den Programmierer.
Machs doch so, wie mit dem "Affenformular", nach dem Submit wird das Formular wieder aufgerufen, mit Erfolgs- oder Fehlermeldungen an der "richtigen" Stelle, beispielsweise, wenn die Absenderadresse fehlt oder die Nachricht selbst gar nicht geschrieben wurde.
Dass man bei Erfolg trotz Affenformular auf eine andere Seite weiterleitet, hat auch einen technischen Grund. Denn auf der Seite kann der Anwender F5/Refresh drücken wie er will, ohne dass die Mail nochmal abgesendet wird. Deswegen war die Weiterleitung bei Erfolg kein prinzipieller Kritikpunkt von mir. Vielleicht kann man es dahingehend optimieren, dass man auf die selbe Seite + Parameter (wenn man nicht in einer Session vermerken kann, dass eine Erfolgsmeldung angezeigt werden soll) weiterleitet.
Erfolgsmeldung: Das Formular könnte eine neue Überschrift bekommen und die Eingabefelder werden disabled/redonly gesetzt.
Warum? Man kann sie ganz weglassen, weil sie keine Punkte mehr bringen. Stattdessen wäre eine Wiederholung des eingegebenen Textes (ohne dass er von einer Textarea begrenzt wird) sinnvoll, denn dann kann der Anwender sich die Seite zu Dokumentationszwecken ausdrucken.
Und überhaupt: Die beiden Header
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
rechtfertigen auch keine Library, wenn da nur ein Mailformular zu schreiben ist, für "quoted-printable" gibt es bestimmt auch in PHP eine Funktion, die das tut und ein Pipe-Handle auf sendmail geht auch mit PHP zu machen.
Es geht gerade darum, die Arbeit des Maskierens zu sparen, denn je nach Stelle hat man unterschiedliche Verfahren anzuwenden. Es gibt selbstverständlich Funktionen für quoted-printable in PHP, doch damit hört es ja nicht auf. Dieses Mailer-Script soll ja die Grundlage bilden für weitere komplexe Szenarien, die man nicht zu Fuß erledigen will, weil sie mindestens mal sehr aufwendig sind. Eine Lib, die all dies und weitere Eventualitäten berücksichtigt, und die schon öfter als die eben fertig gestellte Eigenentwicklung auf Herz und Nieren getestet wurde, ist da eine sehr große Arbeitserleichterung und man kann sich schneller wichtigeren Dingen widmen.
Lo!