Problem mit Kontaktformular

ms-networker

Mitglied
Guten Abend,

ich habe ein problem mit meinem Kontaktformular.
Das Formular hat bei einem anderen Provider wunderbar funktioniert.
Nach dem Domain-Umzug zu 1und1 (Virual Server Linux) t es leider nicht mehr.

Aktuell ist die PHP Version auf dem Server 4.3.10
Auf dem alten Server kann ich das leider nicht sagen.

Hier der Quellcode des mailers :
postkarte.php wird per include in der kontakt.php geladen.
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>Kontaktformular</title>
 </head>
<body>

<?php
if ($_POST) {
 $vorname = $_POST['vorname'];
 $nachname = $_POST['nachname'];
 $betreff = $_POST['betreff'];
 $nachricht = $_POST['nachricht'];
 $email = $_POST['email'];

 # Ihre E-Mail-Adresse
 $an ="su@carl-goetz.de";

 # Diese Nachricht wird an Ihre E-Mail-Adresse gesendet
 $text ="Hallo,\n Sie haben eine neue Nachricht von $vorname $nachname erhalten:\n\n
 ====\n $nachricht\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.";
 @mail($an,$betreff,$text,"From: ".$email);
 echo "<div align=center><b>Ihre Nachricht wurde gesendet!</b></div>";
}
else { ?>

<script type="text/javascript">
function eingaben_ueberpruefen(){
 var mail = document.Formular.email.value;
 if (document.Formular.vorname.value.length < 3){
  alert("Sie haben noch keinen Vornamen eingegeben!")
  document.Formular.vorname.focus();
  return false;
 }
 else if (document.Formular.nachname.value.length < 3){
  alert("Bitte geben Sie Ihren Nachnamen ein");
  document.Formular.nachname.focus();
  return false;
 }
 else if (mail.length < 10 || mail.indexOf ('@',0) == -1 || mail.indexOf ('.',0) == -1){
  alert("Bitte geben Sie eine gültige E-Mail-Adresse ein.")
  document.Formular.email.select();
  return false;
 }
 else if (document.Formular.betreff.value.length < 10){
  alert("Bitte geben Sie einen Betreff ein!")
  document.Formular.betreff.focus();
  return false;
 }
 else if (document.Formular.nachricht.value.length < 20){
  alert("Bitte geben Sie eine Nachricht ein!")
  document.Formular.nachricht.focus();
  return false;
 }
 else
 return true;
}
</script>

<style type="text/css">
.eingabe{
    border: 0px;
    width: 200px;
    border-bottom: solid 1px #000000;
    background-color: transparent;
    font-family: Comic Sans MS,Verdana, Arial;
    font-size: 13px;
    color: #0000A0;
}
.eingabefeld{
    width: 200px;
    height: 110px;
    overflow: auto;
    border: solid 1px #000000;
    background-color: transparent;
    font-family: Comic Sans MS,Verdana, Arial;
    font-size: 12px;
    color: #0000A0;
}
.tabelle{
    background-image: url(papier.jpg);
    border: solid 1px #000000;
}
.format{
    font-family: Times New Roman;
    font-size: 16px;
    color: #000000;
}
.button{
    color: #000000;
    text-decoration: underline;
    background-color: transparent;
    border: 0px;
}
.vertikale_linie{
    width: 1px;
    height: 335px;
    background-color: #797979;
}
.klein{
    font-family: Tahoma,Arial;
    font-size: 11px;
    color: #4D4D4D;
}
</style>

<form name="Formular" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"
 onSubmit="return eingaben_ueberpruefen();">

<table width="500" cellPadding="10" cellSpacing="0" class="tabelle">
 <td width="200">
  <input type=text class="eingabe" name="vorname"><br>
  <span class="klein">Vorname</span><br>
   <input type=text class="eingabe" name="nachname"><br>
   <span class="klein">Nachname</span><br>
   <input type=text class="eingabe" name="email"><br>
   <span class="klein">E-Mail-Adresse</span><br>
   <input type=text class="eingabe" name="betreff"><br>
   <span class="klein">Betreff</span><br><br>
   <span class="klein">Ihre Mitteilung:</span><br>
   <textarea name="nachricht" class="eingabefeld"></textarea><br><br>
   &nbsp; &nbsp;<input type="reset" value="Löschen" class="button"> 
   &nbsp; &nbsp;<input type="submit" value="Absenden" class="button">
  </td>
  <td width="1%"><div class="vertikale_linie"></div></td>
  <td valign="top">
   <div align="right">
    <img src="porto.jpg" width="80" height="91">
   </div>
   <p class="format">
     <br>
     <br>
     <br>
     An: Carl G&ouml;tz <br>
     <b>Gross &amp; Einzelhandel </b><br>
     </p>
   <p class="format">Westparkstr. 1 <br>
     <br>
     <b>47799 Krefeld </b>
      </p></td>
 </tr>
</table>

</form>

<?php 
}
?>

</body>
</html>
Beim versand wird angeeben das die Mail versand wurde.
Weiss jemand rat ?

Vielen Dank

Gruß Networker
 
Was tut das Script nicht mehr? Es scheint, dass da nichts verkehrt ist. Jedenfalls funktioniert es bei mir. Vielleicht solltest du gucken, wie sendmail auf deinem neuen virtual Host eingestellt ist? Was ich noch für ne Idee hätte, mach mal error_reporting auf E_ALL und entferne das @ vor dem Aufrufen von mail(), um zu sehen, ob irgendwelche Fehler rauskommen. ;) Danach können wir weiter schauen.
 
Danke für die schnelle Antwort.

@ vor mail() entfernt

und am anfang der Datei

PHP:
error_reporting(E_ALL);

eingefügt. Beim ausfüllen des Formulars keine Fehler, und als Antwort habe ich bekommen dass die Mail versendet wurde. Im Postfach jedoch nix *grml*

Wo kann ich die sendmail einstellungen überprüfen, in den Sachen "Virtual Server" besitze ich leider nicht genügend Erfahrung und Kenntnisse :( aber ich geb mir mühe.

Vielen Dank


Gruß Networker
 
Schon mal mit verschiedenen Mailkonten probiert, bekommt niemand seine Mail od. nur du nicht?

Ein Problem das ich hatte war folgendes, dass ich im eMail zwar den From-Header angegeben habe, aber der SMTP-Server die eMail mit "MAIL FROM:<wwwrun@xxx.xx>" verschickt hat.

Der eMail-Anbieter meines Vertrauens überprüft aber eingehende eMails darauf, ob die Absender-Adresse existiert... Was nicht der Fall war, also wurde die eMail auch nicht akzeptiert.
 
Also das mailformular scheint überhaupt keine mails zu verschicken, vielleicht ist wirklich was mit den sendmail einstellungen des 1und1 Virtual Servers nicht in Ordnung. Laut dem mailer ist alles in Ordnung, es kommen keine Fehler raus, nur ne einfache Bestätigung das die Mail raus ist.

Werde mal sehen ob ich was zu sendmail finde, die Lösung sollte ich Sie finden werde ich natürlich hier posten.

Grüße

Networker
 
Ansonsten gibt es auch viele freie PHP-Klassen, die das Mail versenden direkt unterstützten, einfach nur nach SMTP und PHP googeln. Das SMTP-Protokoll ist auch recht einfach, also eine eigene Implementierung, wie ich es gemacht habe, ist kein großer Aufwand.
 
gelöst mit Support von 1und1

Das Problem war scheinbar das für die Domain ein QMail Server lief und ständig versucht hat die EMails lokal zu zu stellen.

Nach einem Anruf beim 1und1 Server Support rat man mir unter Plesk für die Domain den QMail auszuschalten, dann würde sendmail auch die EMails rausschicken.

Gesagt, getan und nun verrichtet das Kontaktformular seinen Dienst.

Das nur so zu Vollständigkeit, weil ich es ja auch nirgendswo im Web gefunden hab.

Gruß Networker
 
Zurück