Ankündigung

Einklappen
Keine Ankündigung bisher.

Mails aus Script kommen nicht immer an (nach Umstellung auf php5?)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mails aus Script kommen nicht immer an (nach Umstellung auf php5?)

    Hallo,
    ich hab ein (für mich) großes und undurchsichtiges Problem. Für eine Seminaranmeldung habe ich ein Script, das bis jetzt immer einwandfrei funktioniert hat. Doch seite einiger Zeit (Umstellung auf php5) kommen die Mails nicht immer an. Einerseits schickt das Formular eine Mail an den Anbieter des Seminars (bei t-online) und einmal an den Kunden. Die Mails an den Kunden kommen immer an, die Mail an den Anbieter nicht immer. Das ist das, was mich ein wenig fertig macht. Ich habe nun schon mal die t-online Adresse ausgetauscht und ein gmail Konto angelgt. Da kamen die Mails am Anfang an, dann auch wieder mal nicht.
    Kann es sein, dass es mit der Umstellung auf php5 zu tun hat? Oder mit einem anderen Problem im Script?
    Oder an was kann es sonst liegen? Ich bin am verzweifeln...
    hier mal der Code:
    PHP-Code:
    <form name="form1" method="post" action="form.php">
            <?php
    echo  " ";
    if (!empty(
    $_POST)) {extract($_POST);}
    $remote getenv("REMOTE_ADDR");
    $date date("m.d.Y H:i:s");
    if (
    $remote == ""$ip "<i> no ip </i>";
    else 
    $ip getHostByAddr($remote);
    if (!isset(
    $ausgefllt)){ 
    ?>
            <table width="100%" border="0" cellpadding="2" cellspacing="2" class="text">
              <tr>
                <td colspan="2"><strong>Anmeldeformular</strong></td>
              </tr>
               <tr> 
                <td width="55" align="right" valign="top"><div align="left">Name</div></td>
                <td width="250"><input name="Name" type="text" class="inputtext" size="40"></td>
              </tr>
              <tr> 
                <td align="right" valign="top"><div align="left">E-Mail</div></td>
                <td><input name="Email" type="text" class="inputtext" size="40" id="Email"></td>
              </tr>
              <tr>
                <td align="right" valign="top"><div align="left">Telefon</div></td>
                <td><input name="Telefon" type="text" class="inputtext" size="40" id="Telefon"></td>
              </tr>
              <tr>
                <td align="right" valign="top"><div align="left">Strasse:</div></td>
                <td><input name="Strasse" type="text" class="inputtext" size="40" id="Strasse"></td>
              </tr>
              <tr>
                <td align="right" valign="top"><div align="left">PLZ / Ort: </div></td>
                <td><input name="Ort" type="text" class="inputtext"  size="40" id="Ort"></td>
              </tr>
              <tr>
                <td align="right" valign="top"><div align="left"><font size="2" face="Arial, Helvetica, sans-serif">Betreff</font></div></td>
                <td><input name="Betreff" type="text" class="inputtext" size="40" value="Anmeldung zum Seminar"></td>
              </tr>
              <tr>
                <td colspan="2" align="right" valign="top"><div align="left">Hiermit melde ich mich VERBINDLICH zu folgendem Seminar / folgenden Seminaren an: </div>
                    <label> </label></td>
              </tr>
              <tr>
                <td align="right" valign="top">&nbsp;</td>
                <td><input name="biss1" type="checkbox" value="10.Januar ">              10.Januar<br>
                        <strong>Biss</strong></td>
              </tr>
              <tr>
                <td align="right" valign="top">&nbsp;</td>
                <td><input type="checkbox" name="biss2" value="13.September">              13.September<br>
                  <strong>Biss</strong></td>
              </tr>
                       <tr>
                <td align="right" valign="top">&nbsp;</td>
                <td><input type="checkbox" name="AB1" value="10./11. Oktober">              10./11. Oktober<br>
                <strong>A / B </strong>
                  </td>
              </tr>
               <tr>
                <td align="right" valign="top">&nbsp;</td>
                <td><input type="checkbox" name="AB2" value="13./14. M&auml;rz">              13./14. M&auml;rz<br>
                   <strong>A / B </strong></td>
              </tr>
               <tr>
                <td align="right" valign="top">&nbsp;</td>
                <td><input type="checkbox" name="CD1" value="14./15. November">              14./15. November<br>
                 <strong> C / D </strong>
                  </td>
              </tr>
              <tr>
                <td align="right" valign="top">&nbsp;</td>
                <td><input type="checkbox" name="CD2" value="17./18. April">              17./18. April<br>
                  <strong>C / D </strong>
                  </td>
              </tr>
              <tr>
                <td align="right" valign="top"><div align="left"><font size="2" face="Arial, Helvetica, sans-serif">Anmerkung:</font></div></td>
                <td><textarea name="Nachricht" cols="40" rows="8" class="inputtextarea"></textarea></td>
              </tr>
              <tr>
                <td align="right"><input type="hidden" name="kopie" id="kopie" value="checkbox" checked>
                </td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td><input name="Submit" type="submit" class="inputbutton" value="Abschicken">
                    <input name="Submit" type="reset" class="inputbutton" value="Zur&uuml;cksetzen">
                    <input name="ausgefllt" type="hidden" id="ausgefllt" value="1">
                </td>
              </tr>
            </table>
            <?php }
    else 
    {
    //Daten &uuml;berpr&uuml;fen
    if (empty ($Name)) {  
        die (
    "<p class=\"inputbutton\"><br>Geben Sie bitte Ihren Namen ein<br><br>
        <a href=\"javascript:;\" onClick=\"javascript:history.back()\" class=\"inputbutton\">
        &nbsp;&nbsp;&nbsp;&laquo;&laquo; zur&uuml;ck&nbsp;&nbsp;&nbsp;</A><br><br></p>"
    );}
    if (empty (
    $Email)) {  
        die (
    "<font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=red>Geben Sie bitte Ihre Emailadresse ein<br><br>
        <a href=\"javascript:;\" onClick=\"javascript:history.back()\" class=\"inputbutton\">
        &nbsp;&nbsp;&nbsp;&laquo;&laquo; zur&uuml;ck&nbsp;&nbsp;&nbsp;</A><br><br></p>"
    );}
    if(!
    eregi("[a-z0-9._-]+@+[a-z0-9._-]+.+[a-z]{2,4}$"$Email)) { 
         die(
    "<p class=\"inputbutton\"><br>Geben Sie bitte eine g&uuml;ltige Emailadresse an.<br><br>
        <a href=\"javascript:;\" onClick=\"javascript:history.back()\" class=\"inputbutton\">
        &nbsp;&nbsp;&nbsp;&laquo;&laquo; zur&uuml;ck&nbsp;&nbsp;&nbsp;</A><br><br></p>"
    );}
    if (empty (
    $Betreff)) {  
        die (
    "<p class=\"inputbutton\"><br>Geben Sie bitte einen Betreff ein<br><br>
        <a href=\"javascript:;\" onClick=\"javascript:history.back()\" class=\"inputbutton\">
        &nbsp;&nbsp;&nbsp;&laquo;&laquo; zur&uuml;ck&nbsp;&nbsp;&nbsp;</A><br><br></p>"
    );}    
        
    $Nachricht stripslashes($Nachricht);
    $Nachrichthtml ereg_replace("\n""<br>"$Nachricht);
    $Betreff stripslashes($Betreff);
    $Telefon stripslashes($Telefon);
    $date date("d.m.Y H:i:s");        
        echo 
    "
        <p><br><br>
        <table width=\"400\"><tr><td class=\"inputtextarea\"  width=\"600\">
        <FONT face=arial size=2>
        Guten Tag, Frau/Herr <b>
    $Name</b>, 
        <br><br>
        vielen Dank f&uuml;r Ihre Anmeldung zu folgendem Kurs / den folgenden Kursen: <br>
        
    $biss1<br>
        
    $biss2<br>
        
    $AB1<br>
        
    $AB2<br>
        
    $CD1<br>
        
    $CD2<br>
        Ihre Anmerkung:<br>
        
    $Nachrichthtml<br> 
        Sie bekommen ein Best&auml;tigungsmail über Ihre Anmeldung binnen der n&auml;chsten Minuten zugesandt.<br><br><br> 
               <br>
       
            </td></tr></table></center>"
    ;
            

    // Formulardaten verschicken
    $header "From: $Name <$Email>\n";
    $header .= "Reply-To: $Email\n";     
    $header .= "Content-Type: text/plain"
    mail("max.main@gmail.com,m.main@t-online.de""Anmeldeformular","
    Folgende Nachricht wurde vom Anmeldeformular 
    aus gesendet am 
    $date 
    --------------------------------------------------------

    Name:       
    $Name
    Telefon:    
    $Telefon
    Strasse:    
    $Strasse
    Ort:        
    $Ort
    Email:      
    $Email

    Betreff:  
    $Betreff
    $biss1
    $biss2
    $AB1
    $AB2
    $CD1
    $CD2

    Nachricht:
    $Nachricht

    $ip
    --------------------------------------------------------    
    "
    ,"$header");

    //Best&auml;tigungsemail an den Absender
    if(isset($kopie))
    {
    $header1 "From: Max Main <m.main@t-online.de>\n"///***************************************************************
    $header1 .= "Reply-To: m.main@t-online.de\n";  ///***************************************************************   
    $header1 .= "Content-Type: text/plain"
    mail("$Email","Ihre-Anmeldung""
    Guten Tag, Frau/Herr 
    $Name,\n
    vielen Dank für Ihren Besuch auf unsrer Homepage und die Anmeldung zum Seminar / zu den Seminaren!\n
    \n
    Folgende Nachricht ist bei uns eingegangen:\n
    Ihr Name: 
    $Name
    Ihre Email: 
    $Email
    Telefon: 
    $Telefon
    Strasse: 
    $Strasse
    Ort: 
    $Ort

    Ihr Betreff: 
    $Betreff
    $biss1
    $biss2
    $AB1
    $AB2
    $CD1
    $CD2

    Ihre Anmerkung:
    $Nachricht\n
    \n
    Eine Anmeldebestätigung wird in den nächsten Tagen auf dem Postweg bei Ihnen eintreffen.\n

    Mit freundlichem Gruss
    Max Main\n\n     
    Hinweis: Dies ist eine bei Eingang Ihrer Nachricht vom System automatisch 
    generierte Bestätigungs-Email.\n\n   \n\n   
    "
    ,"$header1"); 
    }
    }
    ?>
          </form>
    Was mir auch gerade noch einfällt: auf der Seite läuft auch ein Redaktionssystem über php. Kann es vielleicht sein, dass das Mail nicht ankommt, wenn man im Redaktionssystem arbeitet?
    Danke für Eure Hilfe!
    :oops:

  • #2
    Das wird mit der Umstellung zu tun haben, gott sei dank!
    Du verwendest bspw. extract, das sich auf register_globals verlässt.
    Hier wird eine differierende Einstellung das Problem sein, was aber eigentlich weniger ein Problem ist, als ein Hinweis, den Code zu optimieren!

    Und btw.: Umstellung auf PHP5 im Jahre 2014
    hoffentlich ist das kein öffentlich zugängliches Script?!

    Und wenns schon ans Umstellen geht, dann kannste auch gleich eine Mailerklasse verwenden!
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Da fällt mir ja schon ein Stein vom Herzen. Und was muss/kann ich da konkret optimieren? Ich hab schon nach einer Liste gesucht, die den Unterschied zwischen php4 und 5 usw erklärt - einen Überblick sozusagen. Hab da aber nichts gefunden, das mir mit meinem beschränkten Wissen geholfen hätte....Leider

      Und btw.: Umstellung auf PHP5 im Jahre 2014
      hoffentlich ist das kein öffentlich zugängliches Script?!
      ja....man konnte sich bis jetzt immer noch raussuchen, welche php Version man möchte....bis jetzt eben.
      Und es ist momentan nicht aktiv.
      :oops:

      Kommentar


      • #4
        Ich hab schon nach einer Liste gesucht, die den Unterschied zwischen php4 und 5 usw erklärt - einen Überblick sozusagen. Hab da aber nichts gefunden, das mir mit meinem beschränkten Wissen geholfen hätte....Leider
        Das kann ich schwerlich glauben!

        Du kannst anfangen, das extract zu entfernen und auf die POST-Elemente direkt zuzugreifen.
        Statt getenv() würde ich Dir ebenfalls direkten Zugriff über die Superglobale $_SERVER[] empfehlen.

        Dann ist sowas unsinnig:
        PHP-Code:
        ,"$header1"); 
        Korrekt sieht das bspw. so aus:
        PHP-Code:
        $header); 
        Wenn Du $date für den Versand verwendest, solltest Du RFC konform bleiben:
        PHP-Code:
        date'r' ); 
        Nicht zwingend aber empfehlenswert ist immer auch die DateTime-Klasse!

        Wenn Du Dich dann noch auf einen Mailer stürzt, anstatt das mit mail() zu vergurken, sollte Dein Script auch wieder laufen!


        EDIT:
        Ach... und ereg_* ersetzen gegen die preg_* Pendants!
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Ok, ich danke Dir erst mal für die Hinweise und werde die jetzt mal versuchen umzusetzen. Ich weiß zwar nicht genau wie - das Script hab ich nicht selbst geschrieben, ich hab es nur von der alten Programmierung übernommen, aber ich verusch es mal. Wühle mich gerade durch Google und Deinen Link bzgl. Mailer.
          :oops:

          Kommentar

          Lädt...
          X