Email Header Problem

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

  • #31
    Also es lag nicht an einer Konfigurationsänderung sondern an einem
    Sicherheitsupdate des Mailservers.

    Der Mailserver erkennt daß nicht alle Headerdaten geschrieben sind, und
    fügt diese selbst hinzu. Das wäre weiterhin nicht so sehr tragisch,
    allerdings interpretieren die verschiedenen Emailclients den Header
    unterschiedlich und dann kann es zu Komplikationen kommen.
    PHP-Code:
    #$nachricht = HTML Letter;
    #$nachrichten = Text Letter; 
    Also das ist mein neuer Header aber das Problem besteht immer noch was mach ich falsch??

    PHP-Code:
            $eol="\r\n";
            
    $mime_boundary "-mime_bound-".md5(time());

            
    $headers "From: TEST Newsletter [email]test@test.de[/email]".$eol;
            
    $headers .= "Reply-To: TEST".$eol;
            
    $headers .= "MIME-Version: 1.0".$eol;
            
    $headers .= "Content-Type: multipart/alternative".$eol


            
    $msg "--$mime_boundary".$eol;
            
    $msg .= "Content-Type: text/plain; charset=UTF-8".$eol;
            
    $msg .= "Content-Transfer-Encoding: 8bit".$eol;

            
    $msg .= strip_tags(str_replace("<br>""\n"$nachrichten)).$eol.$eol;

            
    $msg .= "--$mime_boundary\n";
            
    $msg .= "Content-Type: text/html; charset=UTF-8".$eol;
            
    $msg .= "Content-Transfer-Encoding: 8bit".$eol;

            
    $msg .= $nachricht.$eol.$eol;

            
    $msg .= "--$mime_boundary--".$eol
    So und hier mein Alter Header jetzt nur noch zusätzlich mit Headern:
    PHP-Code:
              $eol="\r\n";
              
    $mime_boundary_2 "2_".md5(time());
              
    $mime_boundary md5(time());

              
    $headers .= "Content-Type: multipart/alternative; boundary=\"".$mime_boundary_2."\"".$eol;
              
    $headers .= "From: TEST Newsletter <".c_norepMail.">".$eol;
              
    $headers .= "MIME-Version: 1.0".$eol;
             
              
    # Text Version
              
    $msg "--".$mime_boundary_2.$eol;
              
    $msg .= "Content-Description: PHP Generated Data".$eol;
              
    $msg .= "Content-Type: text/plain; charset=iso-8859-1".$eol;
              
    $msg .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
              
    $msg .= strip_tags(str_replace("<br>""\n"$nachrichten)).$eol.$eol;
             
              
    # HTML Version
              
    $msg .= "--".$mime_boundary_2.$eol;
              
    $msg .= "Content-Type: text/html; charset=iso-8859-1".$eol;
              
    $msg .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
              
    $msg .= $nachricht.$eol.$eol;
             
              
    # New Subboundary Ende
              
    $msg .= "--".$mime_boundary_2."--".$eol.$eol;

              
    # Top-Boundary Ende
              
    $msg .= "--".$mime_boundary."--".$eol.$eol

    Und hier noch die mailfunktion:

    PHP-Code:
                $ok mail($arrkunden['mail'],$betreff,$msg,$headers); 
    Bin verzweifelt!!!
    Lurchi ! Lurchi ! Lurchi !

    Kommentar


    • #32
      Absenderadresse verglichen ? Einmal hast du (korrekt) blabla <test@test.de>, das andere mal (imho falsch) blabla ]test@test.de. Ausserdem sollte auch jeder letzte Msg Header mit einem doppelten CRLF beendet werden. Auch $headers muss so beendet werden.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #33
        Also weitergehts


        Ich habs jetzt geschafft das er mir wenigstens wieder n Text Newsletter rausschickt aber nunmal keinen multipart. Ich weiß zwar wo das Problem liegt aber ich weiß nicht wie ichs lösen kann hab schon alles durchgegooglt aber find nichts nur die Variante die ich vor dem Sicherheitsupdate des Mailservers hatte.

        Also ich weiß nicht wie ich dem mailprogramm klar machen kann wo meine Text Message und wo meine HTML message anfängt ohne Message und Header in eine Variable zu stecken(was mit dem neuen Sicherheitsupdate nicht funktioniert!).

        Also hier mein aktueller Header:

        PHP-Code:

                $eol
        ="\r\n";
                
        $mime_boundary "-mime_bound-".md5(time());

                
        $headers "From: Test Newsletter <".c_norepMail.">".$eol;
                
        $headers .= "MIME-Version: 1.0".$eol;
                
        $headers .= "Content-Type: multipart/alternative; boundary=\"".$mime_boundary."\"".$eol.$eol;

                
        $msg "--$mime_boundary".$eol;
                
        $headers .= "Content-Type: text/plain; charset=iso-8859-1".$eol;
                
        $headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;

                
        $msg .= strip_tags(str_replace("<br>""\n"$nachrichten)).$eol.$eol;

                
        $msg .= "--$mime_boundary".$eol;
                
        $headers .= "Content-Type: text/html; charset=iso-8859-1".$eol;
                
        $headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
                
                
        $msg .= $nachricht.$eol.$eol;

                
        $msg .= "--$mime_boundary--".$eol
        Lurchi ! Lurchi ! Lurchi !

        Kommentar


        • #34
          Wie kann ich sagen das $nachrichten zum content type Text/plain und $nachrichten zum Content type text/html gehört ohne Header und meine Message in ein Variable zu packen?? weil das neue Sicherheitsupdate des mailservers macht meinen Header "kaputt" wenn ich alles in eine Variable stecke...


          Ich weiß nicht mehr weiter
          Lurchi ! Lurchi ! Lurchi !

          Kommentar


          • #35
            Ohne nähere Kenntnis deines Systems behaupte ich einfach mal folgendes:

            Dein Mailserver kennt sowas wie Variablen gar nicht. Er bekommt vom PHP-Interpreter nur noch Text, in dem alle Variablen längst substituiert wurden.


            Finde heraus, was genau dein Mailserver nicht akzeptiert, umschreibt oder hinzufügt.

            Kommentar


            • #36
              Wenn es so ist wie du sagst wieso kennt er dann überhaupt meinen Text?? denn der steht in einer Variable.

              Ich hab meinen Header jetzt soweit verändert das er mir den Textteil zum richtigen Content type schreibt und den HTML teil auch. Das Problem ist wenn ich versuche das Boundary in den Header zu packen klappts wieder nicht

              Mein "neuer" Header:
              $nachricht = HTML Teil;
              $nachrichten = Text teil;
              PHP-Code:

                      $eol
              ="\r\n";
                      
              $mime_boundary "-mime_bound-".md5(time());

                      
              $headers "From: Test Newsletter <".c_norepMail.">".$eol;
                      
              $headers .= "MIME-Version: 1.0".$eol;
                      
              $headers .= "Content-Type: multipart/alternative; boundary=\"".$mime_boundary."\"".$eol.$eol;

                      
              $msg "--$mime_boundary".$eol;
                      
              $headers .= "Content-Type: text/plain; charset=iso-8859-1".$eol;
                      
              $headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
                      
              $msg .= strip_tags(str_replace("<br>""\n"$nachrichten)).$eol.$eol;
                      
              $headers .= $msg;


                      
              $msg2 "--$mime_boundary".$eol;
                      
              $headers .= "Content-Type: text/html; charset=iso-8859-1".$eol;
                      
              $headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
                      
              $msg2 .= $nachricht.$eol.$eol;
                      
              $msg2 .= "--$mime_boundary--".$eol;
                      
              $headers .= $msg2
              Mein mailstring

              PHP-Code:

                  mail
              ($_POST['i_empf'],$betreff,"",$headers); 
              Lurchi ! Lurchi ! Lurchi !

              Kommentar


              • #37
                Original geschrieben von Anbu
                Wenn es so ist wie du sagst wieso kennt er dann überhaupt meinen Text?? denn der steht in einer Variable.
                Deswegen:
                PHP-Code:
                mail($_POST['i_empf'],$betreff,"",$headers); 

                Kommentar


                • #38
                  Deswegen:
                  ??wie jetzt??

                  Also ich muss ja die NAchricht beim mail weglassen wenn ich alles in den Header schreibe oder??
                  Lurchi ! Lurchi ! Lurchi !

                  Kommentar


                  • #39
                    Vielleicht erhellt dich das hier
                    PHP-Code:
                    echo $betreff; echo $headers
                    vor dem Aufruf von mail().

                    Siehst du in der Ausgabe noch irgendwo Variablen?!

                    Dass du die Nachricht leer läßt und stattdessen alles in den Header schreibst ist absoluter Käse. Gerade dann sollte nämlich der Mailserver eingreifen, denn so erkennt man Mail Injection.

                    Kommentar


                    • #40
                      Das Problem ist das ich nicht weiß wie ich das anderst machen kann...

                      Denn wenn ich msg und header trenne weiß er nicht zu welchem Content type mein Text und zu welchem mein HTML teil gehört....
                      Lurchi ! Lurchi ! Lurchi !

                      Kommentar


                      • #41
                        PHP-Code:

                                $eol
                        ="\r\n";
                                
                        $mime_boundary "-mime_bound-".md5(time());

                                
                        $headers "From: Test Newsletter <".c_norepMail.">".$eol;
                                
                        $headers .= "MIME-Version: 1.0".$eol;
                                
                        $headers .= "Content-Type: multipart/alternative; boundary=\"".$mime_boundary."\"".$eol.$eol;

                                
                        $msg "--$mime_boundary".$eol;
                                
                        $headers .= "Content-Type: text/plain; charset=iso-8859-1".$eol;
                                
                        $headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;

                                
                        $msg .= strip_tags(str_replace("<br>""\n"$nachrichten)).$eol.$eol;

                                
                        $msg .= "--$mime_boundary".$eol;
                                
                        $headers .= "Content-Type: text/html; charset=iso-8859-1".$eol;
                                
                        $headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
                                
                                
                        $msg .= $nachricht.$eol.$eol;

                                
                        $msg .= "--$mime_boundary--".$eol;


                            
                        mail($_POST['i_empf'],$betreff,$msg,$headers); 

                        Wenn ich so mache zeigt er mir nur den Text an weil im Email Header die beiden Content types für text und html direkt untereinander stehen und die Nachricht erst danach kommt.

                        Mit diesem Header ist es eine ganz normale email keine multipart er erkennt den HTML teil einfach nicht
                        Lurchi ! Lurchi ! Lurchi !

                        Kommentar


                        • #42
                          mit dem phpmailer hättest die Probleme gar nicht,
                          aber Du willst ja das Rad neu erfinden.

                          Kommentar


                          • #43
                            ...hilfe bitte keine Kommentare....danke
                            Lurchi ! Lurchi ! Lurchi !

                            Kommentar


                            • #44
                              also dann geb ich Dir hiermit offiziell den Tip:

                              nimm den phpmailer !

                              Immer dieses kindische "ich will es aber anders machen" !

                              Dann mach es anders und nerv nicht das Forum.

                              Kommentar


                              • #45
                                Niemand zwingt dich was dazu zu schreiben!
                                Lurchi ! Lurchi ! Lurchi !

                                Kommentar

                                Lädt...
                                X