GoeranW: Kontaktformular mit PHP, aber keine Mail im Postfach?!

Hallo erstmal!
Ich bin momentan noch ein relativer PHP Neuling, das heißt ich kann's zwar lesen + verstehen, jedoch nicht schreiben.
Nun wollte ich auf meine Seite die ich für den Informatik-unterricht geschrieben habe eine art Anmeldeformular einbinden, das gewisse Daten per Mail an eine Adresse schickt.
Ich habe das passende PHP Skript dafür von einem bekannten bekommen und nach meinen Wünschen ein wenig drin herumgepfuscht.
Nun habe ich das Kontaktformular hochgeladen und alles gemäß der Vorschriften ausgefüllt und auf den "absenden" button geklickt. Die Nachricht dass meine Anmeldung versendet wurde wurde auch angezeigt, jedoch erhalte ich die Mail mit den Informationen nicht. Ich habe schon mehrere verschiedene Emailadressen ausprobiert und bei keiner klappt es.
hier ist der Code, vielleicht findet ja jemand einen Fehler den ich vor lauter Blindheit nicht sehen kann und kann mir weiterhelfen:

<?php  
if ($_POST) {  
$vorname = $_POST['vorname'];  
$nachname = $_POST['nachname'];  
$betreff = $_POST['betreff'];  
$nachricht = $_POST['nachricht'];  
$email = $_POST['email'];  
  
  
 # Ihre E-Mail-Adresse  
 $an ="Glubschi_93@web.de";  
  
 # Diese Nachricht wird an Ihre E-Mail-Adresse gesendet  
 $text = "Hallo,\n Sie haben eine neue Anmeldung von $vorname $nachname erhalten:\n\n  
 ====\Vorname: $vorname<br>Nachname: $nachname<br>Emailadresse:$email<br>Alter:$alter<br>FB seit:$fbsince<br>Sponsoren:$sponsors\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.";  
 @mail($an, $betreff, $text, "From: " . $email);  
 echo "<b>Danke für die Anmeldung! </b>";  
}  
else { ?>  
  
<script type="text/javascript">  
function eingaben_ueberpruefen(){  
 var mail = document.Formular.email.value;  
 if (document.Formular.vorname.value.length < 1) {  
  alert("Namen eingeben, Yo!")  
  document.Formular.vorname.focus();  
  return false;  
 }  
  
  
  
 else if (mail.length < 10 || mail.indexOf ('@',0) == -1 || mail.indexOf ('.',0) == -1) {  
  alert("eMail-Adresse eingeben, Yo!")  
  document.Formular.email.select();  
  return false;  
 }  
  
 else if (document.Formular.betreff.value.length < 1) {  
  alert("Betreff eingeben, Yo!")  
  document.Formular.betreff.focus();  
  return false;  
 }  
  
 else if (document.Formular.nachricht.value.length < 1) {  
  alert("Nachricht?")  
  document.Formular.nachricht.focus();  
  return false;  
 }  
  
 else  
 return true;  
}  
</script>  
  
<div align="center">  
<form name="Formular" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"  
 onSubmit="return eingaben_ueberpruefen();">  
 <table cellPadding="4" cellSpacing="2" border="0">  
  <tr>  
   <td><b>Vorname:</b></td>  
   <td><input type="text" name="vorname" size="35" maxlength="40"></td>  
  </tr>  
  <tr>  
  <td><b>Nachname:</b></td>  
  <td><input type="text" name="Nachname" size="35" maxlength="40"></td>  
  <tr>  
   <td><b>eMail:</b></td>  
   <td><input type="text" name="email" size="35" maxlength="40"></td>  
  </tr>  
  <tr>  
   <td><b>Alter:</b></td>  
   <td><input type="text" name="alter" size="35" maxlength="40"></td>  
  <tr>  
   <td><b>Wohnort:</b></td>  
   <td><input type="text" name="habit" size="35" maxlength="80"></td>  
  </tr>  
  <tr>  
   <td><b>Fingerboarding seit:</b></td>  
   <td><input type="text" name="fbsince" size="35" maxlength="40"></td>  
  </tr>  
  <tr>  
   <td><b>Sponsoren</b></td>  
   <td><input type="text" name="sponsors" size="35" maxlength="40"></td>  
  </tr>  
  <tr>  
   <td><b>Betreff:</b></td>  
   <td><input type="text" name="betreff" value="Wikingercup Anmeldung" size="35" maxlength="70"></td>  
  </tr>  
  <tr>  
   <td colspan=2>  
    <b>Wichtige Fragen:</b><br><textarea name="nachricht" cols="45" rows="10"></textarea>  
   </td>  
  </tr>  
  <tr>  
   <th colspan=2><br>  
    <input type="submit" value="Absenden">  
    <input type="reset">  
   </th>  
  </tr>  
 </table>  
</form>  
</div>  
  
<?php  
}

?>

  1. Lieber GoeranW,

    @mail($an, $betreff, $text, "From: " . $email);

    mit dem Klammeraffen (@-Zeichen) unterdrückst Du jegliche Fehlermeldung. Das bedeutet, Du musst in den Server-Logs nach Fehlermeldungen von PHP schauen. Vielleicht möchstest Du zumindest vorübergehend zum Testen diesen Klammeraffen aber entfernen?

    Dass Dein Script eine SPAM-Schleuder ist, sollte man Dir fairerweise auch sagen... und wie man das besser macht steht bei SELFHTML: Einfacher PHP-Formmailer

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Moin,

    Ich bin momentan noch ein relativer PHP Neuling, das heißt ich kann's zwar lesen + verstehen, jedoch nicht schreiben.

    hmm, der Weg vom "lesen und verstehen" zum Schreiben ist eigentlich ein sehr kurzer.

    Ich habe das passende PHP Skript dafür von einem bekannten bekommen und nach meinen Wünschen ein wenig drin herumgepfuscht.

    Und dabei war deinem Bekannten wohl nicht bewusst, dass das Script gravierende Mängel aufweist. Im Wesentlichen, dass Benutzereingaben ($_POST['betreff'], $_POST['email']) ungeprüft verarbeitet werden. Ich kann deinem Script ohne weiteres "Best Viagra in town!\nCC: somebody@example.org" als Betreff übergeben, und bekomme meine SPAM-Mail damit verschickt, ohne dass ich identifizierbar bin. Stattdessen stehst du dann als der böse Bube da.

    Nun habe ich das Kontaktformular hochgeladen und alles gemäß der Vorschriften ausgefüllt und auf den "absenden" button geklickt. Die Nachricht dass meine Anmeldung versendet wurde wurde auch angezeigt

    Das beantwortet die Frage, die ich als erstes stellen wollte - ob auf diesem Webspace überhaupt PHP verfügbar ist, und ob das Script wirklich durch den PHP-Parser kommt. Okay.

    jedoch erhalte ich die Mail mit den Informationen nicht. Ich habe schon mehrere verschiedene Emailadressen ausprobiert und bei keiner klappt es.

    Felix hat schon zwei wichtige Punkte genannt: Du unterdrückst eventuell informative Fehlermeldungen mit dem vorangestellten '@', und warum die Mail nicht zugestellt wird, dürfte am ehesten anhand von Log-Einträgen des Servers herauszufinden sein. Dazu müsstest du dich aber vermutlich mit dem Admin in Verbindung setzen.

    Zusätzlich zum Unterdrücken der Fehlermeldung ignorierst du auch noch den Rückgabewert von mail(), der false ist, wenn der Mailversand aus formalen Gründen (keine Berechtigung, kein Mailserver konfiguriert) nicht möglich ist.

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

    Das reine Umkopieren von Variablenwerten ist sinnlos. Aber es bekäme einen Sinn, wenn du dabei die Eingaben auf bestimmte Kriterien überprüfen würdest. $_POST['vorname'] und $_POST['nachname'] sind in deinem Fall unkritisch, weil sie nur im Mail-Text landen; $_POST['nachricht'] verwendest du nicht einmal. Dafür aber ein paar andere Variablen, die gar nicht definiert sind ($alter, $fbsince, $sponsors).

    $_POST['betreff'] und $_POST['email'] landen aber in Mail-Headerzeilen. Da wäre das allermindeste: Sicherstellen, dass sie keine Zeilenumbrüche enthalten. Sonst ist nämlich das möglich, was ich oben schon angedeutet habe!

    Abgesehen davon greifst du einfach auf die übergebenen Parameter zu, ohne zu fragen, ob sie *wirklich* übergeben wurden. Was ist, wenn kein Betreff oder keine Absenderadresse da ist?

    $text = "Hallo,\n Sie haben eine neue Anmeldung von $vorname $nachname erhalten:\n\n
    ====\Vorname: $vorname<br>Nachname: $nachname<br>Emailadresse:$email<br>Alter:$alter<br>FB seit:$fbsince<br>Sponsoren:$sponsors\n====\n\nSie können $vorname $nachname unter dieser $email erreichen.";

    Warum setzt du in einer Mailnachricht <br> ein? Du hast nirgends angegeben, dass du HTML-Mails verschicken willst, es gilt also der Default-Typ text/plain (und das ist auch gut so).

    So long,
     Martin

    --
    Wissen erwirbt man, indem man immer das Kleingedruckte sorgfältig liest.
    Erfahrung bekommt man, indem man das nicht tut.
    1. Okay, ich verstehe was ihr mir erklärt und ich kann einigermaßen nachvollziehen wo die Fehler liegen. Ich habe jetzt einfach mal das Script von Fleix' Link genommen und konfiguriert wie es dort steht...dann zunächst in der konfigurierung das "@" durch (at) ausgetauscht und alle tippfehler die noch da waren (2 oder 3) behoben..jedoch will der mir Trotzdem keine Mail schicken, es wird mir jetzt nach dem Absenden nur "Die Mail konnte nicht versendet werden." angezeigt.
      Da ich gerade aber ziemlich beschäftigt bin mit Schule (Klausuren usw.) hab ich nicht die Zeit dazu mich damit auseinandere zu setzen, jedoch brauche ich so ein "Anmeldeformular" sehr dringend...
      Das klingt jetzt vielleicht total faul, aber könnte mir jemand von hier dabei helfen (Script schreiben, so dass ich nur noch Email etc. einfügen brauche wäre wunderbar), so ein Formular aufzustellen?
      Es wird natürlich reichlich gedankt sein und ich verspreche ich werde mich bei Zeiten ransetzen und mich mit der Materie auseinandersetzen. Ich will mich nicht um die Arbeit drücken, aber ich habe den Kopf im Moment mit zu vielen anderen Sachen voll.

      Ein Kontaktformular nach folgendem Muster wäre klasse:

      http://wikingercup.kilu.de/wikingercup/contactform.php

      mfg
      Göran Wisniewski.

      1. Lieber GoeranW,

        Da ich gerade aber ziemlich beschäftigt bin mit Schule (Klausuren usw.) hab ich nicht die Zeit dazu mich damit auseinandere zu setzen

        dann brauchst Du das Anmeldeformular eben jetzt gerade _nicht_.

        jedoch brauche ich so ein "Anmeldeformular" sehr dringend...

        Wenn dem so wäre, dann würdest Du Dir die dafür notwendige Zeit nehmen. Setze Deine Prioritäten und lebe mit ihnen.

        Das klingt jetzt vielleicht total faul

        Für mich klingt das einfach nach Schüler-Standardverhalten, nicht unbedingt faul.

        aber könnte mir jemand von hier dabei helfen (Script schreiben, so dass ich nur noch Email etc. einfügen brauche wäre wunderbar), so ein Formular aufzustellen?

        Meinst Du jetzt wirklich "helfen", oder meinst Du doch eher "Arbeit für mich erledigen"?

        Es wird natürlich reichlich gedankt sein und ich verspreche

        Blah. Schon klar.

        Ich will mich nicht um die Arbeit drücken, aber ich habe den Kopf im Moment mit zu vielen anderen Sachen voll.

        Wie gesagt, dann brauchst Du das Teil jetzt eben nicht, sondern erst dann, wenn Du Deinen Kopf dafür wieder frei hast. Warum diese angebliche Dringlichkeit?

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      2. Hallo Göran,

        [...] jedoch will der mir Trotzdem keine Mail schicken

        wer?

        es wird mir jetzt nach dem Absenden nur "Die Mail konnte nicht versendet werden." angezeigt.

        Das heißt, das Script stellt den Fehler wenigstens schon mal fest. Damit bist du eigentlich schon einen Schritt weiter.

        Und jetzt schauen wir mal in den Quelltext, wodurch diese Fehlermeldung verursacht wird:

        mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)  
          or die("Die Mail konnte nicht versendet werden.");
        

        Also gibt mail() beim Aufruf false zurück und signalisiert damit, dass der Aufruf gescheitert ist. Hast du's mal ohne den zusätzlichen "From"-Header versucht? Möglicherweise darfst du keine abweichende Absender-Adresse angeben.
        Ansonsten wäre das wohl ein Fall für den Support deines Webhosters.

        So long,
         Martin

        --
        F: Was sagt der große Keks zum kleinen Keks?
        A: Du kannst dich jetzt verkrümeln.
  3. Also ich habe jetzt mal meine Prioritäten "verknüpft" und mich im Informatik unterricht dran gesetzt. Ich habe darauf geachtet, alle Variablen zu definieren.
    Ich habe jetzt ein html-dokument (cform.html) und eine mail.php. Die mail. php hab ich in der cform.html unter <form...action=mail.php> definiert.
    Hier mal die beiden Codes. Zunächst von der <form>

      
    <form method="get" action="mail.php">  
    Vorname:<br>  
    <input type="text" name="vorname"><br>  
    Nachname:<br>  
    <input type="text" name="nachname"><br>  
    E-Mail:<br>  
    <input type="text" name="email"><br>  
    Alter:<br>  
    <input type="text" name="alter"><br>  
    Wohnort<br>  
    <input type="text" name="wohnort"><br>  
    Fingerboarding seit:<br>  
    <input type="text" name="fbsince"><br>  
    Sponsoren:<br>  
    <input type="text" name="sponsoren"><br><br>  
    <input type="submit" name="send" value="senden">  
    </form>  
    
    

    Da ich das ganze mehr oder weniger aus dem netz abgeschaut habe, hatte ich zunächst als form method="post" statt "get". Mein physiklehrer riet mir jedoch zu "get". Liegt da ein Problem? Ich weiß übrigens, dass das formular momentan noch total unsicher ist, ich hätte nur gern mal ein Grundgerüst um das zu verstehen.

    jetzt mail.php:

      
    <?php  
    $vorname = $_GET["vorname"];  
    $nachname = $_GET["nachname"];  
    $email = $_GET["email"];  
    $alter = $_GET["alter"];  
    $wohnort = $_GET["wohnort"];  
    $fbsince = $_GET["fbsince"];  
    $sponsoren = $_GET["sponsoren"];  
      
    $mailto = "wikingercup[at]gmx.de";  
    $subject = "$betreff";  
    $message = "Anmeldung von $vorname $nachname $email;  
      
    mail();  
    ?>  
    
    

    Ich habe zunächst [at] anstatt von @ gesetzt, aus dem grund der mir ja schon von euch erklärt wurde, damit ich die Fehlermeldungen sehe.
    Die werden mir jetzt auch angezeigt, und zwar folgende:

    Parse error: syntax error, unexpected $end in /data/multiserv/users/338209/projects/542569/www/mail.php on line 15

    jedoch habe ich bei line 15 gar nichts stehen. Der mail.php code ist nur 14 Zeilen lang. Was ist das los? :D

    Andere Fragen die noch offen sind:

    Wie trenne ich in der mail.php bei der definition von $message die einzelnen variablen voneinander? Ist das grundlegend überhaupt richtig so?

    Wie genau bzw was muss ich unter mail(____) definieren und ist das ebenfalls grundlegend richtig aufgeschrieben so?

    Würde mich über Hilfe freuen.
    lg, Göran.

    1. Hallo,

      <form method="get" action="mail.php">

      Vorname:<br>
      <input type="text" name="vorname"><br>
      [...]
      <input type="submit" name="send" value="senden">
      </form>

        
      da kann man noch nicht viel falsch machen ...  
        
      
      > Da ich das ganze mehr oder weniger aus dem netz abgeschaut habe, hatte ich zunächst als form method="post" statt "get". Mein physiklehrer riet mir jedoch zu "get".  
        
      Das war kein guter Rat. Die Methode GET verwendet man üblicherweise, um Informationen abzurufen, ohne dass sich am Datenbestens dadurch etwas verändert und ohne dass irgendeine Aktion ausgelöst wird. Suchabfragen sind ein typisches Beispiel. Bei GET werden die Formulardaten als URL-Parameter übertragen. Die Folge ist, dass jedesmal, wenn ich nach dem Formularversand auf "Reload" klicke, die Formularaktion (hier: Der Versand einer Mailnachricht) wiederholt wird.  
      Sollen tatsächlich nachhaltige Aktionen durchgeführt werden, empfiehlt sich POST. Dabei werden die Formulardaten im Request-Body (für den Normaluser unsichtbar) übertragen. Sollte jemand nach dem Formularversand nochmal auf "Reload" latschen, warnen die meisten Browser explizit, dass damit die Formulardaten erneut gesendet werden.  
        
      
      > ~~~php
      
      <?php  
      
      > $vorname = $_GET["vorname"];  
      > $nachname = $_GET["nachname"];  
      > $email = $_GET["email"];  
      > $alter = $_GET["alter"];  
      > $wohnort = $_GET["wohnort"];  
      > $fbsince = $_GET["fbsince"];  
      > $sponsoren = $_GET["sponsoren"];
      
      

      Wieder die Frage: Wozu die Umkopieraktion?

      $mailto = "wikingercup[at]gmx.de";

      $subject = "$betreff";

        
      Wozu hier eine einsame Stringvariable nochmals in einen String einbetten?  
        
      
      > ~~~php
      
      $message = "Anmeldung von $vorname $nachname $email;  
      
      >   
      > mail();  
      > ?>
      
      

      Schon das Syntax-Highlighting sollte dich darauf aufmerksam machen, dass hier etwas nicht stimmt. Nein, ich meine nicht, dass die die mail-Funktion völlig ohne Parameter aufrufst.

      Ich habe zunächst [at] anstatt von @ gesetzt, aus dem grund der mir ja schon von euch erklärt wurde, damit ich die Fehlermeldungen sehe.

      Dann hast du uns komplett missverstanden. Es ging nicht um das '@' als Trennzeichen in der Mailadresse - da muss es hin! Es ging darum, einer PHP-Anweisung ein '@' voranzustellen, um damit die Ausgabe von Fehlermeldungen zu unterdrücken. Das ist meistens eine schlechte Idee.

      Parse error: syntax error, unexpected $end in /data/multiserv/users/338209/projects/542569/www/mail.php on line 15

      jedoch habe ich bei line 15 gar nichts stehen. Der mail.php code ist nur 14 Zeilen lang.

      Eben, und in der Zeile 15 stellt der Parser fest, dass das Script schon zu Ende ist, obwohl das syntaktisch gar nicht sein kann!

      Wie trenne ich in der mail.php bei der definition von $message die einzelnen variablen voneinander? Ist das grundlegend überhaupt richtig so?

      Ich verstehe den Sinn der Frage nicht. Worauf willst du hinaus?

      Wie genau bzw was muss ich unter mail(____) definieren und ist das ebenfalls grundlegend richtig aufgeschrieben so?

      Du sollst da gar nichts definieren. Aber die Funktion mail() erwartet mindestens drei Parameter, die du hier weggelassen hast.

      So long,
       Martin

      --
      Der Gast geht solange zum Tresen, bis er bricht.
      1. Wieder die Frage: Wozu die Umkopieraktion?

        Einfach statt $vorname; $nachname, etc. $_POST['vorname'] usw schreiben oder wie?

        Schon das Syntax-Highlighting sollte dich darauf aufmerksam machen, dass hier etwas nicht stimmt. Nein, ich meine nicht, dass die die mail-Funktion völlig ohne Parameter aufrufst.

        Wie lässt sich denn am besten der Inhalt der mail definieren?

        $message = "$_POST[".."] $_POST[".."]...
        ?

        Eben, und in der Zeile 15 stellt der Parser fest, dass das Script schon zu Ende ist, obwohl das syntaktisch gar nicht sein kann!

        was genau fehlt denn?

        »»Ich verstehe den Sinn der Frage nicht. Worauf willst du hinaus?

        Ich wollte fragen, wie ich die einzelnen Parameter so von einander abgrenze und evtl auch etwas dazwischen einfügen kann, also ganz normalen Text (z.B.: mail{ Neue Anmeldung von: $_POST["vorname"]$_POST["nachname"]...})

        Du sollst da gar nichts definieren. Aber die Funktion mail() erwartet mindestens drei Parameter, die du hier weggelassen hast.

        Ich hab mich falsch ausgedrückt. Ich wollte quasi erfragen, welche parameter erforderlich sind, danke für den link ;)

        lg, Göran.

        1. So, hab den kram jetzt so bearbeitet, dass ich keine Fehlermeldungen mehr angezeigt bekomme, was mich vermuten lässt dass keine fehler im Code selbst mehr vorhanden sind. Trotzdem bekomme ich keine mails verschickt und ich frage mich, ob ich noch andere "befehle"(der richtige Fachbegriff fehlt mir grad) wie "echo" usw. unbedingt benötige.
          Für Anti-Spam-Codes gibts ja reichlich scripte im Netz, das dürfte also das kleinste problem sein.

          Also: Falls jemand weiß wo das problem liegt, dass ich keine Mails bekomme, dann würde ich mich über Hilfe freuen ;)

          hier der mail.php code:

          <?php  
          $vorname = $_POST['vorname'];  
          $nachname = $_POST['nachname'];  
          $email = $_POST['email'];  
          $alter = $_POST['alter'];  
          $wohnort = $_POST['wohnort'];  
          $fbsince = $_POST['fbsince'];  
          $sponsoren = $_POST['sponsoren'];  
            
          $mailto = "Glubschi_93@web.de";  
          $subject = "$betreff";  
          $message = "$vorname $nachname $email $alter $wohnort $fbsince $sponsoren";  
            
          mail($mailto,$subject,$message);  
          ?>  
          
          

          Und ja, ich weiß, unnötiges Umkopieren, aber das ist wohl eher nicht der Grund für mein problem, oder?

          und hier html:

          <form method="post" action="mail.php" >
          <table cellpadding="4" cellspacing="2" border="0" align="center" >
          <tr>
           <td>Vorname:</td>
           <td><input type="text" name="vorname"></td>
          </tr>
          <tr>
           <td>Nachname:</td>
           <td><input type="text" name="nachname"></td>
          </tr>
          <tr>
           <td>E-Mail:</td>
           <td><input type="text" name="email"></td>
          </tr>
          <tr>
           <td>Alter:</td>
           <td><input type="text" name="alter"></td>
          </tr>
          <tr>
           <td>Wohnort:</td>
           <td><input type="text" name="wohnort"></td>
          </tr>
          <tr>
           <td>Fingerboarding seit:</td>
           <td><input type="text" name="fbsince"></td>
          </tr>
          <tr>
           <td>Sponsoren:</td>
           <td><input type="text" name="sponsoren"></td>
          </tr>
          <tr>
           <td><input type="submit" name="send" value="Absenden"></td>
           <td><input type="reset"></td>
          </tr>
          </table>
          </form>

          hab das ganze mal in ne tabelle gepackt, sieht schöner aus und ist ja oft auch so üblich, oder nicht?

          lg, Göran.

          1. Hallo Göran,

            So, hab den kram jetzt so bearbeitet, dass ich keine Fehlermeldungen mehr angezeigt bekomme

            aha, das fehlende abschließende Anführungszeichen hast du also gefunden. :-)

            was mich vermuten lässt dass keine fehler im Code selbst mehr vorhanden sind.

            Zumindest keine syntaktischen.

            Trotzdem bekomme ich keine mails verschickt und ich frage mich, ob ich noch andere "befehle" (der richtige Fachbegriff fehlt mir grad) wie "echo" usw. unbedingt benötige.

            $mailto = "Glubschi_93@web.de";
            $subject = "$betreff";
            $message = "$vorname $nachname $email $alter $wohnort $fbsince $sponsoren";
            mail($mailto,$subject,$message);

            Parameter 1: Eine gültige Mailadresse
            Parameter 2: Ein String als Betreff
            Parameter 3: Der Mail-Inhalt (beliebiger Text)

            Das sollte in Ordnung sein. Aber hatten wir nicht schon festgestellt, dass mail() selbst fehlschlägt? Hast du dich mal beim Provider-Support erkundigt, was der Grund sein könnte?
            Du kannst ja einen reduzierten Test Case bauen: Keine Parameter, ein Script mit nur einer einzigen Zeile:

            var_dump(mail("Glubschi_93@web.de", "PHP-Mailversand", "irgendein Text"));

            Wenn hier als Ausgabe "true" erscheint, hat die mail()-Funktion deines Webspaces ein grundsätzliches Problem.

            Für Anti-Spam-Codes gibts ja reichlich scripte im Netz, das dürfte also das kleinste problem sein.

            Unterschätz das Thema nicht ...

            Und ja, ich weiß, unnötiges Umkopieren, aber das ist wohl eher nicht der Grund für mein problem, oder?

            Nein. Es ist unnötig und unvorteilhaft, aber technisch gesehen nicht schädlich.

            Ciao,
             Martin

            --
            Theorie ist, wenn jeder weiß, wie's geht, und es geht trotzdem nicht.
            Praxis ist, wenn's geht, und keiner weiß warum.
            Bei uns sind Theorie und Praxis vereint: Nichts geht, und keiner weiß warum.
            1. [latex]Mae  govannen![/latex]

              var_dump(mail("Glubschi_93@web.de", "PHP-Mailversand", "irgendein Text"));

              Wenn hier als Ausgabe "true" erscheint, hat die mail()-Funktion deines Webspaces ein grundsätzliches Problem.

              Möchtest du ein "nicht" kaufen?

              Ansonsten gilt, daß einige Provider in $additional_parameters eine "Identifizierung", z.B. durch Angabe der eigenen Mail-Adresse
              bei diesem Provider verlangen, sonst geht die E-Mail nicht raus. Das steht dann üblicherweise in den FAQ/Hilfen des Providers

              Cü,

              Kai

              --
              Deutsches Liedgut international:
              In early rope to mountain we pull
              Foren-Stylesheet Site Selfzeug JS-Lookup
              SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
              1. Hallo,

                var_dump(mail("Glubschi_93@web.de", "PHP-Mailversand", "irgendein Text"));
                Wenn hier als Ausgabe "true" erscheint, hat die mail()-Funktion deines Webspaces ein grundsätzliches Problem.
                Möchtest du ein "nicht" kaufen?

                eventuell, wenn das Angebot akzeptabel ist. ;-)

                Ansonsten gilt, daß einige Provider in $additional_parameters eine "Identifizierung", z.B. durch Angabe der eigenen Mail-Adresse bei diesem Provider verlangen, sonst geht die E-Mail nicht raus.

                Tatsächlich? Sorum habe ich das noch nicht gehört. Ich kenne eher den Fall, dass einzelne Provider bereits das Vorhandensein dieses zusätzlichen Parameters generell als Fehler abweisen.

                Das steht dann üblicherweise in den FAQ/Hilfen des Providers

                Ja, sollte wohl.

                Ciao,
                 Martin

                --
                Chef zum Bewerber: Es gibt zwei Dinge, auf die ich allergrößten Wert lege. Das eine ist Sauberkeit! Haben Sie übrigens die Schuhe auf der Matte abgetreten? - Ja, selbstverständlich. - Gut. Das andere ist uneingeschränkte Ehrlichkeit. Übrigens, draußen liegt gar keine Fußmatte.
                1. [latex]Mae  govannen![/latex]

                  var_dump(mail("Glubschi_93@web.de", "PHP-Mailversand", "irgendein Text"));
                  Wenn hier als Ausgabe "true" erscheint, hat die mail()-Funktion deines Webspaces ein grundsätzliches Problem.
                  Möchtest du ein "nicht" kaufen?

                  eventuell, wenn das Angebot akzeptabel ist. ;-)

                  Na ja, ein gebräuchliches und relativ kurzes Wort, da kann man nicht allzu viel für nehmen. Andererseits ein sehr wichtiges Wort, da es eine gegebene Bedeutung völlig ändern kann. Weil du es bist: Sonderpreis 3 Lewonzen.

                  Ansonsten gilt, daß einige Provider in $additional_parameters eine "Identifizierung", z.B. durch Angabe der eigenen Mail-Adresse bei diesem Provider verlangen, sonst geht die E-Mail nicht raus.

                  Tatsächlich? Sorum habe ich das noch nicht gehört. Ich kenne eher den Fall, dass einzelne Provider bereits das Vorhandensein dieses zusätzlichen Parameters generell als Fehler abweisen.

                  Bei meinem Provider muß ich das angeben. "-f localpart@example.org" (das  muß eine bei diesem Provider angelegte Mailadresse sein), sonst wird die Mail ins Nirvana geschickt.
                  Soll wohl gegen Mißbrauch schützen ...

                  Cü,

                  Kai

                  --
                  Deutsches Liedgut international:
                  In early rope to mountain we pull
                  Foren-Stylesheet Site Selfzeug JS-Lookup
                  SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
            2. @Felix:

              Ich hatte den Code den du mir in dem Link gegeben hast bereits ausprobiert, jedoch hat es nicht geklappt und ich habe den Code selbst nicht so gut verstehen können, dass ich mich zunächst auf die Suche nach einem einfacheren vorgegebenen Code begeben habe.

              @Martin:

              Ok, das habe ich jetzt mal ausprobiert und es kommt folgende meldung:

              "bool(false)"

              hier die URL:

              http://goeranw.kilu.de/mailtest.php

              mfg,
              Göran.

              1. Moin,

                @Martin:
                Ok, das [mail() mit konstanten Parametern] habe ich jetzt mal ausprobiert und es kommt folgende meldung:

                "bool(false)"

                gut ... oder vielmehr, nicht gut. Nun hat Kai mich ja berechtigterweise noch korrigiert; im PHP-Manual heißt es:
                 "Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise."
                Also liegt auf deinem Server/Webspace ein generelles Problem mit mail() vor. Ergo: Hinweise/FAQS des Webhosters durchsuchen, eventuell beim Support nachfragen.

                Good luck,
                 Martin

                --
                Success should be measured not so much by the position that one has reached in life,
                but by the obstacles one has overcome while trying to succeed.
        2. Lieber GoeranW,

          Einfach statt $vorname; $nachname, etc. $_POST['vorname'] usw schreiben oder wie?
          [...]

          Wie lässt sich denn am besten der Inhalt der mail definieren?

          $message = "$_POST[".."] $_POST[".."]...
          ?

          wieso kannst Du es Dir erlauben Linktipps, die Dein Problem 100%ig lösen können, so völlig zu ignorieren? Was hat Dir an meinem Hinweis nicht geschmeckt?

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)