PHP Funktion mail() wie brauchar ist die

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

  • PHP Funktion mail() wie brauchar ist die

    Hallo Leute,

    ich habe ein Formular geschrieben wo Leute sich bei mir anmelden können und in meine Datenbak gespeichert werden, nach der Anmeldung wird mit deren Daten noch automatisch eine Bestätigungsemail mit der Funktion PHP mail() an die Leute geschickt.

    Sollte es zumindest, ich habe jetzt festgestellt das diese Bestätigungen nicht immer ankommen. Zum testen benutze ich immer eine Emailadresse von AOL und eine die über meine Webspace läuft.

    Manchmal kommen die blöden Email an und manchmal nicht.

    Wenn ein Fehler im Script wäre, dann würde ja eigentlich nie etwas ankommen also muss das Problem wo anders liegen.

    Kennt jemand den scheiß und kann mir helfen?

  • #2
    such mal nach "mails kommen nicht an" oder so ähnlich, der Pekka hat da einen netten und ausführlichen Thread zu verfasst.

    Kommentar


    • #3
      Ich habe den Artikel von Pekka gefunden und gelesen.

      Bei mir kann ich keine Fehler finden.

      Wie gesagt kommen die Mail manchmal an und manchmal nicht, also nicht nie.

      Ich glaube ich werde das Problem auch selbst nicht gelöst bekommen, eine Nachricht an meinen Webhoster habe ich auch schon geschickt, aber der wird mir sicher auch nicht weiter sagen, ich denke nicht das die zugeben das es an deren Server liegt, bin bei evanzo.de

      Ich frage mich ob es den nicht eine Möglichkeit gibt die immer funktioniert.

      Ich bin auch nicht der große Programier und kann nur bisjen PHP.

      Wenn ich es hinbekomme das die Email auch ankommen dann reicht mir das schon mehr brauch ich eigentlich nicht.

      Falls jemand mir so ein Script verkaufen will das immer ankommt dann bitte melden, mein eigenes sieht so aus:

      PHP-Code:
      if($_GET['action'] == "geschickt") {
      $headers  "From: \"info@xxx.de\" <info@xxx.de>\r\n";
      $headers .= "MIME-Version: 1.0\r\n";
      $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

      $mail_an_anmelder 'Toll hast dich angeneldet back dir ein Eis';
      $email_an_mich 'und schon wieder jemand angemeldet';

      $betreff1 'Ihre Anmeldung';
      $betreff2 'Anmeldung';
      $meine_email 'franz_becken_bauer@aol.com';

      mail($email$betreff1$mail_an_anmelder$headers);
      mail($mail_meine$betreff2$email_an_mich$headers);

      Zuletzt geändert von lamoe; 17.11.2006, 19:32.

      Kommentar


      • #4
        naja, wird wohl eher am format deiner mail liegen. nen mime header und nur html als nachrichtentext. was würde dir als webserver zuerst dazu einfallen, spam?

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          naja, wird wohl eher am format deiner mail liegen. nen mime header und nur html als nachrichtentext. was würde dir als webserver zuerst dazu einfallen, spam?
          Hi, leider versteh ich nicht ganz aber bin froh das dir was aufgefallen ist.
          Also ich muss vielleicht noch mal etwas klar stellen, ich schicke schon HTML ich hab jetzt in meinem Beispiel nur Text in die Variable geschrieben normal sieht das so aus:

          PHP-Code:
          $mail_an_anmelder '
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <html>
          <head>
           <title>Deine Anmeldung du Vokel</title>
          </head>
          <body>
          <table width="640">
           <tr>
           <td>Du hast dich angemeldet, freu dich jetzt bist du ein Held</td>
          </tr>
          </table>
          </body>
          </html> 
          Ist das so auch nicht in Ordnung?

          Kommentar


          • #6
            naja, HTML wird nunmal gerne als Spam erkannt. Vorallem wenn nicht auch ne Text-Mail enthalten ist.

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              naja, HTML wird nunmal gerne als Spam erkannt. Vorallem wenn nicht auch ne Text-Mail enthalten ist.
              Kann man das Problem den nicht lösen, soll ich da noch irgendwie ne text mail dran hängen.

              Aber etwas ist mir eben noch aufgefallen, ich habe ein mal Testweise folgendes gemacht:

              PHP-Code:
              if(mail($email$betreff1$mail_an_anmelder$headers)) {echo '<h1>geschickt</h1>';}
              if(
              mail($mail_meine$betreff2$email_an_mich$headers)) {echo '<h2>auch geschickt</h2>'; } 
              Wenn ich das Formular abschicke bekomme ich auch beide echos ausgegeben, aber ich bekomme auch noch zusätzlich ne Meldung:

              Warning: Cannot modify header information - headers already sent by (output started at /home/www/htdocs/xxx.de/anmelden.html:347)
              Und wenn ich das echo leer lasse so:

              PHP-Code:
              if(mail($email$betreff1$mail_an_anmelder$headers)) {echo '';}
              if(
              mail($mail_meine$betreff2$email_an_mich$headers)) {echo ''; } 
              kommt die Meldung nicht mehr.

              Aber das hilft mir auch nicht weiter, ich werde jetzt erst mal versuchen nur Text Mail zu versenden und kucken ob es dann klappt.

              Kommentar


              • #8
                Was die o.g. Fehlermeldung zu bedeuten hat, findest du mit einer kurzen Suche raus. danke.

                Kommentar


                • #9
                  Das blöde an der Fehlermeldung ist das die nur auftritt wenn ich im echo Befehl was rein schreibe ansonsten nicht.

                  Aber was auch blöd ist wenn man im Internet nach solchen Meldungen sucht kommt immer nur so viel Mist bei raus, heir was ich dazu gefunden habe:


                  Obige Warnung tritt immer dann auf, wenn vor dem Aufruf der header-Funktion eine Ausgabe “gesendet” wurde. Bei der Ausgabe kann es sich um Leerzeichen, Zeilenumbrüche, Zeichenketten etc. handeln.
                  Da versteh ich auch wieder nichts von.

                  Jetzt habe ich die if Klammer einfach wieder weg gelassen und es kommt auch keine Meldung mehr.

                  Die Email kommen ab und zu an und manchmal auch nicht da muss ich wohl mit Leben und habe Pech gehabt wenn es keine Lösung gibt.

                  Kommentar


                  • #10
                    Da versteh ich auch wieder nichts von.
                    Tja. dann solltest du das Mit der Programmierung am besten ganz sein lassen. Wenn du nicht weißt, dass du mit echo 'bla'; eine Zeichenkette ausgibst.

                    Kommentar


                    • #11
                      Ich denke du hast da schon recht, aber viel will ich gar nicht mehr lernen im Programmieren.

                      Ich kann Leute in eine Datenbank eintragen lassen und wenn ich es schaffe das die Emails ankommen reicht es eigentlich.

                      Das echo eine Zeichenkette ausgibt weis ich schon.

                      Kommentar


                      • #12
                        du versuchst offensichtlich NACH dem email senden noch einen header zu senden und dass das nach einem echo nicht geht ist klar.

                        Kommentar


                        • #13
                          du versuchst offensichtlich NACH dem email senden noch einen header zu senden
                          Und wenn er es VOR dem E-Mail Senden machen würde, wäre auch latte. Das Problem ist, dass er nach der Ausgabe nen Header senden will.

                          Kommentar


                          • #14
                            Vielleicht bin ich etwas spät dran, aber nochmal kurz zusammengefasst:

                            (1) php mail versendet die Mails zuverlässig.

                            (2) wenn Deine Mails nicht ankommen, so liegt das an den MTA's dazwischen.

                            (3) die Fehlermeldung mit dem Header hat mit Deiner Mail nichts zu tun, Du darfst den header Befehl eben nicht verwenden, wenn Du schon etwas nach stdout (echo, print) geschrieben hast.

                            Um (2) zu vermeiden, solltest Du Deine Mails nicht in Spam-Verdacht geraten lassen. Dabei hilft:

                            - gesetzter Sender entspricht sendender Domain (IP Auflösung)
                            - Korrekte MIME Nutzung
                            - Div. Spam Wörter vermeiden

                            Wenn Du mit dem direkten Programmieren von MIME Syntax nicht so vertraut bist, solltest Du eine Klasse verwenden, z.B. meine:
                            http://www.php-resource.de/inc/counthit.php?LKID=8746



                            Grüße
                            phpkopf5
                            Scripting is back :-)

                            Kommentar


                            • #15
                              Ja danke war ganz hilfreich dein Hinweis, ich habe es auch wieder hinbekommen mit dem Mails versenden per PHP :-)

                              Kommentar

                              Lädt...
                              X