Sebastian: SelfHTML Formmailer erweitern

Hallöchen

Habe eben im SelfHTML das Script für den Formmailer ( http://selfaktuell.teamone.de/artikel/cgiperl/form-mail/ ) gefunden, was auch super funktioniert.
Nur würde ich das noch gerne ein bisschen erweitern, hab davon aber nicht wirklich Ahnung.
Aber villeicht kann mir ja jemand von Euch helfen :)
Zuerst würde ich gerne als Absenderadresse die Mail haben die der User in ein Input Feld eingibt.
Zweitens würde ich gern die ganzen hidden Felder diekt in das Script schreiben, wie muss das dann aussehen? Stadt $mailto = $query->param('mailto'); so $mailto = $query->param('emailadresse'); ??
Und zu guter letzt würde ich noch gern die IP Adresse mitübermitteln.
Könnte mir da jemand bei der Sache behilflich sein?

MfG

  1. Hallo Sebastian,

    Nur würde ich das noch gerne ein bisschen erweitern, hab davon aber nicht wirklich Ahnung.

    Also ich versteh ja, wenn man ohne Perlkenntnisse nicht gleich alles versteht. Aber soooo unglaublich undurchsichtig ist doch der Quelltext nun auch wieder nicht, dass man gar nichts mal selber ausprobieren kann, oder? Ich sag das mal deswegen, weil hier in letzter Zeit gerade zu dem Form-Mailer einige solcher Anfragen kommen.

    Zuerst würde ich gerne als Absenderadresse die Mail haben die der User in ein Input Feld eingibt.

    print MAIL "From: $query->param('email')\n";
    (wobei angenommen wird, dass in HTML <input type="text" name="email"> verwendet wurde)
    Nur als Beispiel: um so was selber rauszukriegen, muss man einfach mal in den Quelltext einer typischen E-Mail gucken, so bekommt man das "From: " raus. Und der Rest koennte man durch Ableiten von den uebrigen, schon vorhandenen Anweisungen im Script schaffen. Ich sag das jetzt mal so ausfuehrlich hier, nicht um dir speziell Vorwuerfe zu machen - aber einfach so allgemein: auch wenn man keine Ahnung von den Tiefen einer bentutzten Technologie hat, kann man durchaus durch "intuitives Verstehen" einiges rausbekommen. Und dann halt mal ausprobieren.

    Zweitens würde ich gern die ganzen hidden Felder diekt in das Script schreiben, wie muss das dann aussehen?

    Nun - es werden in dem Script doch folgende Zeilen notiert:

    $delimiter = $query->param('delimiter');  # ---> Begrenzerzeichen zwischen name und value
    $mailto = $query->param('mailto');        # ---> Empfängeradresse
    $returnhtml = $query->param('return');    # ---> URL für Dankeseite
    $subject = $query->param('subject');      # ---> E-Mail-Subject

    Die loeschst du einfach. Stattdessen notierst du ueberall im weiteren Verlauf des Scriptcodes, wo eine der Variablen $delimiter, $mailto, $returnhtml oder $subject vorkommt, direkt den gewuenschten Wert. Beispiel - du ersetzt die Zeile:
    $mailtext = $mailtext.$delimiter;
    durch:
    $mailtext = $mailtext." = ";
    Oder:
    print MAIL "To: $mailto\n";
    durch:
    print MAIL "To: deine.mail@irgendwo.de\n";

    Und zu guter letzt würde ich noch gern die IP Adresse mitübermitteln.

    print MAIL "IP: $ENV{'REMOTE_ADDR'}\n";
    print MAIL "Host: $ENV{'REMOTE_HOST'}\n";

    viele Gruesse
      Stefan Muenz