• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kontaktformular mit mail() wird teilweise als Spam erkannt (?)

nadjak

Neues Mitglied
Hallo,

ich habe ein einfaches Kontaktformular das per mail() versendet wird. Allerdings ist es so, das die Email nicht bei allen Empfängern ankommt. Ich nehme an, das es etwas mit den Spamfiltern zu tun hat. Ich hoffe,mir kann jemand von euch helfen, wie ich mein Script umbauen muß, das es nicht mehr als Spam erkannt wird und zugestellt wird.
Danke schonmal.
lg Nadja

PHP:
<?php
 if (isset($_GET['senden'])){
   if(($_POST['Name'] != '') && ($_POST['Email'] != '') && ($_POST['Betreff'] != '') && ($_POST['Adresse'] != '') && ($_POST['Ort'] != '')){
     #email zusammenbauen
     
     $an="[email protected]; [email protected]";
     $von="[email protected]";
     $betreff="Kontaktformular";
     $header = "From: $von\r\n";
     $header .= "Subject: $betreff\r\n";
     $header .= "Content-Type: text/html\r\n";
     $header .= "MIME-Version: 1.0\r\n";
     $mitteilungsdaten="Nachricht über das Kontaktformular:\r\n";
     $mitteilungsdaten .= "Name:".$_POST['Name']."\r\n";
     if($_POST['Firma']!='')$mitteilungsdaten .= "Firma: ".$_POST['Firma']."\r\n";
     $mitteilungsdaten .= "  Email:".$_POST['Email']."\r\n";
      $mitteilungsdaten .= "  Adresse:".$_POST['Adresse']."\r\n";
       $mitteilungsdaten .= "  PLZ und Ort:".$_POST['Ort']."\r\n";
     if($_POST['Event']!='')$mitteilungsdaten .= "Event: ".$_POST['Event']."\r\n";
      if($_POST['Anlass']!='')$mitteilungsdaten .= "Anlass: ".$_POST['Anlass']."\r\n";
      if($_POST['Termin']!='')$mitteilungsdaten .= "Termin: ".$_POST['Termin']."\r\n";
      if($_POST['Dauer']!='')$mitteilungsdaten .= "Dauer: ".$_POST['Dauer']."\r\n";
      if($_POST['Eventort']!='')$mitteilungsdaten .= "Eventort: ".$_POST['Eventort']."\r\n";
      if($_POST['text']!='')$mitteilungsdaten .= "Nachricht: ".$_POST['text']."\r\n";
        
      if (mail($an, $betreff, $mitteilungsdaten, $header)){
        $anzeige="<p>Vielen Dank f&uuml;r Ihre Anfrage.</p>";
      }else{
         $anzeige="<p>Leider konnte Ihre Anfrage nicht an uns &uuml;bermittelt werden.</p>";
      }
   }else{
     $anzeige="<p>Bitte f&uuml;llen Sie alle Felder mit * aus.</p>";
   }
 }else{
   $anzeige='';
 }
 #echo $anzeige;
php?>
 
Werbung:
???
Kannst du mir bitte erklären, was du damit meinst? Wenn ich besser eine andere Funktion nehm, sag mir doch bitte welche.
lg Nadja
 
Werbung:
robo47 schrieb:
Während es für die kleine schnelle Info-Mail gerade noch okay ist, versuchen Leute immer wieder das Rad neu zu erfinden wenn es um Dinge wie HTML-Mails, Datei-Anhängen, eingebette Daten oder die passende Mail-Header geht.
Das muss heutzutage absolut nicht sein, denn dieses Rad wurde schon zu oft neu erfunden und die Chance dass E-Mails wegen Kleinigkeiten (falscher Umbruch, ungültiger Header, falsches Datumsformat, ...) von anderen Mailservern als SPAM markiert werden, ganz abgelehnt werden oder der Mailclient sie am Ende nicht ordentlich darstellen kann ist einfach zu groß.
Die Möglichkeiten eventuelle Fehler zu debuggen sind oftmals sehr schwer, weil sie von vielen Faktoren wie z.b. dem eigenen Mailserver, dem fremden Mailserver, dem Mailclient des Empfängers, der jeweiligen Konfiguration dieser Komponenten und eventueller weiterer Komponenten abhängt.
Deshalb sollte man zum verschicken von Emails auf fertige erprobte und geteste Klassen zurückgreifen.

[Hervorhebungen hinzugefügt.]

Entsprechende Klassen sind im Artikel verlinkt.

Mit dem PHPMailer kannst du vermutlich nicht viel falsch machen.

- http://code.google.com/a/apache-extras.org/p/phpmailer/
- http://phpmailer.worxware.com/index.php?pg=examples
 
Ich hab jetzt den phpmailer eingebaut, doch leider löst es mein Problem noch nicht. Bei der einen Adresse kommt es an, bei der anderen nicht...
Weiß vielleicht jemand, woran das lieben könnte?

lg Nadja

PHP:
if (isset($_GET['senden'])){
 require('class.phpmailer.php');
  
  $mail = new PHPMailer();
  
  
      //Absenderadresse der Email setzen
  $mail->From = $_POST['Email'];
  
  //Name des Abenders setzen
  $mail->FromName = $_POST['Email'];
  
  //Empfängeradresse setzen
  $mail->AddAddress("[email protected]");
  $mail->AddAddress("[email protected]");
  
  //Betreff der Email setzen
  $mail->Subject = "Kontaktformular ";
 
 $mitteilungsdaten .= "Name:".$_POST['Name']."\r\n";
     if($_POST['Firma']!='')$mitteilungsdaten .= "Firma: ".$_POST['Firma']."\r\n";
     $mitteilungsdaten .= "  Email:".$_POST['Email']."\r\n";
      $mitteilungsdaten .= "  Adresse:".$_POST['Adresse']."\r\n";
       $mitteilungsdaten .= "  PLZ und Ort:".$_POST['Ort']."\r\n";
     if($_POST['Event']!='')$mitteilungsdaten .= "Event: ".$_POST['Event']."\r\n";
      if($_POST['Anlass']!='')$mitteilungsdaten .= "Anlass: ".$_POST['Anlass']."\r\n";
      if($_POST['Termin']!='')$mitteilungsdaten .= "Termin: ".$_POST['Termin']."\r\n";
      if($_POST['Dauer']!='')$mitteilungsdaten .= "Dauer: ".$_POST['Dauer']."\r\n";
      if($_POST['Eventort']!='')$mitteilungsdaten .= "Eventort: ".$_POST['Eventort']."\r\n";
      if($_POST['text']!='')$mitteilungsdaten .= "Nachricht: ".$_POST['text']."\r\n";

  //Text der EMail setzen
  $mail->Body = $mitteilungsdaten;
  
  //EMail senden und überprüfen ob sie versandt wurde
  if(!$mail->Send())
  {
    
     $anzeige= "<p>Die Email konnte nicht gesendet werden</p>";
     $anzeige.= "<p>Fehler: " . $mail->ErrorInfo . "</p>";
  }
  else
  {
  
     $anzeige= "<p>Vielen Dank für Ihre Anfrage</p>";
  }
 }else{
   $anzeige='';
 }

php?>
 
Werbung:
Die Mail wird immer noch als Spam erkannt?

Wenn das Script, über das du die Mails verschickst, bei einem Freehoster liegt, ist der vielleicht beim entsprechenden Mail-Anbieter des Empfängers „verbrannt“. Ich könnte mir vorstellen, dass das passiert, wenn von Nutzern dieses Freehosters zu viel Spam geschleudert wird.

Du könntest einen anderen SMTP-Server versuchen, wenn du Zugriff auf einen hast.

- Worx International Inc.

Vielleicht bringt das was.
 
Des weiteren wird Spam ja auch von den Mail-Usern als solches deklariert. Filter werden oftmals ungeschickt gesetzt und Mails die kein Spam sind, werden trotzdem als Spam klassifiziert.
Wenn du keine unerwünschten Werbe-Links oder andere Spam verdächtige Inhalte in deinem Mails hast, sollten die Empfänger mal ihren Spamfilter kontrollieren.
 
Ich danke euch sehr für eure Hilfe.
Ich bin jetzt mal die beiden Spamfilter durchgegangen, die ich bei den beiden Mailadressen hatte. Es war die Einstellung, das er überprüft, ob die Mailadresse von der versendet wird, auch wirklich existiert.
DAnke ihr habt mir sehr geholfen.
lg NAdja
 
Werbung:
Zurück
Oben