Daniel: Formular mit mail()

Beitrag lesen

Ahoi @ll,

hier war kürzlich eine Diskussion (finde sie gerade leider nicht) rund um formulare in denen mail() verwendet wird/werden könnte und welche als Spamverteiler funktionieren könnten, oder auch nicht bei korrekter prüfung. Da ich jetzt selbst ein Script erstellt habe welches anhand der vom Nutzer eingegebenen Daten eine email versendet würde mich jetzt interessieren wie ein effektiver schutz aussehen muss/sollte.

Das script dient zum senden von Dateien. Bis jetzt sieht es so aus:

  
function email_valid($email)  
{  
  if (!ereg("^.+@.+\\..+$", $email))  
  {  
    return false;  
  }  
  else  
  {  
    return true;  
  }  
}  
    $vorname = trim($_POST['vorname']);  
    $nachname = trim($_POST['nachname']);  
    $email = trim($_POST['email']);  
  
    if(email_valid($vorname))  
    {  
      $error = true;  
      $error_msg .= "- Keine Emailaddresse im Vornamen erlaubt<br>";  
    }  
    if(email_valid($nachname))  
    {  
      $error = true;  
      $error_msg .= "- Keine Emailaddresse im Nachnamen erlaubt<br>";  
    }  
        /* Empfänger */  
        $to  = $email;  
        /* Betreff */  
        $subject = "Ihre angeforderte Datei";  
        /* Nachricht */  
        $message = "";  
        /* header */  
        $headers  = "From: ich@localhorst.de\r\n";  
        $headers  .= "MIME-Version: 1.0\n";  
        $headers  .= "Content-Type: multipart/mixed; boundary=\"ZEND-12345\";\n";  
        $headers  .= "Content-Transfer-Encoding: 7bit\n";  
        $headers  .= "--ZEND-12345\n";  
        $headers  .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";  
        $headers  .= "Content-Transfer-Encoding: 7bit\n";  
        $headers  .= "Vielen dank fuer ihr interesse $vorname $nachname\n";  
        $headers  .= "--ZEND-12345\n";  
        $headers  .= "Content-type: $datei_mime_type; name=$dateiname_orig;\n";  
        $headers  .= "Content-Transfer-Encoding: base64\n";  
        $headers  .= "Content-Disposition: attachment\n";  
        $headers  .= "$date_string_base64\n";  
        $headers  .= "--ZEND-12345--";  
        /* Verschicken der Mail */  
        $gesendet = mail($to, $subject, $message, $headers);  
  

Ist die Prüfung so in Ordnung oder gibt es da irgendeine fehleranfälligkeit?

MfG

--
Alle Angaben wie immer ohne Gewähr
LEISE IST SCHEISSE!