Script funktioniert nicht mehr (mime mail)

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

  • Script funktioniert nicht mehr (mime mail)

    Hi,
    vor ca. 3monaten noch hat mein Script soweit ich mich erinnern kann
    noch funktioniert und die mails kamen problemlos an, nun wollte ich
    es für den selben Zweck verwenden, aber siehe da, es funktioniert
    nicht mehr, und ich hab nicht mal ansatzweise eine Ahnung woran
    es liegen könnte, bis auf die Tatsache dass es am $mail_header liegt,
    da es ohne den speziellen header im mime format funktioniert,
    vieleicht hat mein Provider etwas umgestellt, aber mich davon
    jedenfalls nicht in Kentniss gesetzt, ansonsten müsste wohl
    das Script nicht mehr funktionieren/falsch sein, bzw. die Email
    bei mir ankommen?! Vielen Dank schon mal fürs Durchgucken.
    (P.S. bin bei Hosteurope)

    Hier das Teilscript:
    PHP-Code:
        //Mime Format setzten und Datei als Anhang hochladen:
        
    $bodytext $nachricht;
        if (
    file_exists($file))
        {
            
    $file_content fread(fopen($file,"r"),filesize($file));
            
    $file_content chunk_split(base64_encode($file_content));
        }
        
    $boundary strtoupper(md5(uniqid(time())));
        
    $mail_header  "From:<".$from.">\r\n";
        
    $mail_header .= "MIME-Version: 1.0\r\n";
        
    $mail_header .= "Content-Type: multipart/mixed; boundary=".$boundary."\r\n\r\n";
        
    $mail_header .= "This is a multi-part message in MIME format\r\n";
        
    $message "--".$boundary."\r\n";
        
    $message .= "Content-Type: text/html charset=\"iso-8859-1\"\r\n";
        
    //CID = für <img src="cid:test.jpg"> für relative Referenzierung von Imagedateien (ohne Pear)
        
    $message .= 'Content-Id: HierMussWasEindeutigesStehen' $eol;
        
    $message .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
        
    $message .= $bodytext."\r\n";
        
    $message .= "--".$boundary."\r\n";
        if(
    file_exists($file))
        {
        
    $message .= "Content-Type: application/octet-stream; name=\"".$file_name."\"\r\n";
        
    $message .= "Content-Transfer-Encoding: base64\r\n";
        
    $message .= "Content-Disposition: attachment; filename=\"".$file_name."\"\r\n\r\n";
        
    $message .= $file_content."\r\n";
        }
        
    $message .= "--".$boundary."--\r\n\r\n";

        
    $send mail($to,$betreff,$message,$mail_header"-f [email]info@irgendwas.de[/email]"); 
    mfg darki
    Zuletzt geändert von darki777; 03.05.2007, 10:30.

  • #2
    was heisst "funktioniert nicht"?

    Kommentar


    • #3
      Entscheide Dich welches der letzte Header ist und verpasse nur dem ein \r\n\r\n
      PHP-Code:
      $mail_header .= "Content-Type: multipart/mixed; boundary=".$boundary."\r\n\r\n";
      $mail_header .= "This is a multi-part message in MIME format\r\n"
      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


      • #4
        Original geschrieben von jahlives
        Entscheide Dich welches der letzte Header ist
        Bei den zwei zitierten würde ich sagen: Entscheide dich, welcher davon überhaupt ein gültiger Mail-Header ist ...
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Danke für den Hinweis, hab allerdings nur das hier abändern müssen:
          PHP-Code:
          $mail_header .= "Content-Type: multipart/mixed; boundary=".$boundary."\r\n\r\n"
          in

          PHP-Code:
          $mail_header .= "Content-Type: multipart/mixed; boundary=".$boundary."\r\n"
          bzw. hatte ich ein \r\n zuviel ^^.

          mfg darki

          Kommentar


          • #6
            bzw. hatte ich ein \r\n zuviel ^^.
            Du hattest nur eines zuviel für den Fall, dass dies NICHT der letzte Header war. Die letzte Headerzeile SOLLTE/MUSS aber mittels eines doppelten CRLF (\r\n\r\n) abgeschlossen werden.
            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


            • #7
              Original geschrieben von jahlives
              Du hattest nur eines zuviel für den Fall, dass dies NICHT der letzte Header war. Die letzte Headerzeile SOLLTE/MUSS aber mittels eines doppelten CRLF (\r\n\r\n) abgeschlossen werden.
              Ich würde behaupten wollen, dass mail() das automatisch macht, wenn man Header und Body getrennt an die Funktion übergibt.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Ich würde behaupten wollen, dass mail() das automatisch macht, wenn man Header und Body getrennt an die Funktion übergibt.
                Dann werde ich deine Behauptung heute abend mal testen. Habe die \r\n\r\n bis anhin manuell gesetzt und eigentlich keine Probs mit dem Versenden gehabt
                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


                • #9
                  Hallo, ich habe genau das selbe Problem:
                  PHP-Code:
                  $mail_header .= "MIME-Version: 1.0\r\n";
                  $mail_header .= "From: ".$config['admin_name']." <".$config['admin_email'].">\r\n";
                  $mail_header .= "Return-Path: ".$config['admin_name']." <".$config['admin_email'].">\r\n";
                  $mail_header .= "Content-Type: multipart/mixed; boundary=$boundary\r\n";
                  $mail_header .= "This is a multi-part message in MIME format  --  Dies ist eine mehrteilige Nachricht im MIME-Format\r\n\r\n";
                  $message "--$boundary\r\n";
                  $message .= "Content-transfer-encoding: 8BIT\r\n\r\n";
                  $message .= "Content-type: text/html; charset=iso-8859-1\r\n";
                  $message .= "$mail_text\r\n";

                  $file_content fread(fopen($file,"r"),filesize($file));
                  $file_content chunk_split(base64_encode($file_content));
                  fclose($file_content);
                  $message .= "--".$boundary."\r\n";    
                  $message .= "Content-Type: application/octetstream; name=\"$file_name\"\r\n";
                  $message .= "Content-Transfer-Encoding: base64";
                  $message .= "Content-Disposition: attachment; filename=\"$file_name\"\r\n\r\n";
                  $message .= "$file_content\r\n";
                  $message .= "--$boundary--\r\n\r\n"
                  Der Mailversand funktioniert, allerdings ist der Anhang nicht zu öffnen (PDF-File, Fehlermeldung) und im Mail wird der Reine Text angezeigt. An was kann das liegen?

                  Vielen Dank.

                  Kommentar

                  Lädt...
                  X