Formmailer

  • Hallo,

    ich versuche mich aktuell an einem Kontaktformular welchen ich mittels PHP umsetzen wollte. Da jedoch meine Erfahung mit PHP eher spärlich ist, habe ich mir hierzu einige Tutorial durchgelesen, welche mir jedoch bislang noch immer nicht zum gewünschten Erfolg verholfen haben. Kann mir jemand sagen, was an unten stehenden Formmailer falsch ist bzw. mir mit ein paar Denkanstößen weiterhelfen? Bin für jegliche Hilfe dankbar :)

    "Mailer.html"
    "versand.php"
  • also so genau kann ichs dir nicht sagen aber hier sit shcon mal aufjdeden fall nen fehler

    PHP
    } else {
     echo "<p>Ihre Nachricht wurde nicht gesendet, weil</p>" ;   
      echo "<ul>".$fehler."</ul>" ;  
     }


    ".$fehler." und darüber ja dasselbe mit $nachricht

  • Deine mail()-Zeile verwendet nicht die Variablen, die du dir voher definiert hast, sondern ein nichtexistentes Array namens $POST

    Übrigens solltest du noch darauf achten, dass man mit dem Formular kein HTML und kein Spam gesendet werden kann. Ansonsten hast du ziemlich schnell rechtlichte Probleme am Hals ;)

  • Ich werde mich heute Mittag gleich mal ransetzen und das ganze überarbeiten - danke euch :) das ganze wird wohl aufwendiger als ich es mir vorgestellt hatte.
    Wie verhindere ich denn am besten den Versand von Spam und HTML? Kenn mich da leider nicht so aus.
    (Weshalb muss das versenden von HTML unterbunden werden?)

  • (Weshalb muss das versenden von HTML unterbunden werden?)


    Wenn du den header-Parameter gut absicherst, dann kann kein HTML-Versand durchgeführt werden. Es ist nicht unbedingt notwendig zu verhindern, aber Mailclienten haben die schlechte Angewohnheit, bei der HTML-Darstellung Sicherheitslücken zu haben, die der Sender dann ausnutzen kann. Gehe also lieber kein Risiko ein mit öffentlichen Mailformularen und erlaube nur das Senden von reinem Text.

    Zitat

    Wie verhindere ich denn am besten den Versand von Spam


    Dazu baust du entweder ein zeitliches Limit ein (z.B. nur 10 Mails pro Stunde und IP) und/oder ein Captcha.
    Du kannst ebenfalls den Nachrichtentext filtern und bei bestimmten Mustern den Versand verhindern.
    Weiterhin MUSST du den Header-Parameter absichern, sodass keine CC und BCC-Felder angegeben werden können.

  • Ohje ich schätze das ganze überfordert mich woh ein wenig. Ist es denn ausreichend, wenn ich folgende "Bereinigungen" vor dem Versand der E-Mail durchführe? Damit schließe ich doch unter anderem das Versenden an andere Empfänger aus.

    PHP
    $absender = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $_POST['absenderemail'] );
    
    
     $absender = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $absender );
    
    
     $txt = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['txt'] );