mail mit inline images

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

  • mail mit inline images

    Hallo,

    ich versuche gerade verzweifelt eine E-Mail mit einem inline image zu versenden...

    Finde einfach keinen Fehler.

    Hier der Sourcecode:

    PHP-Code:
    $fp fopen($img_name"r");
    $content fread($fpfilesize($img_name));
    fclose($fp);

    $img_code base64_encode($content);

    $boundary "-------**";

    $receiver "email@test.de";
    $sender "test";
    $subject "test";

    $header "MIME-Version: 1.0\r\n";
    $header .= "From: ".$sender."\n";
    $header .= "Content-Type: multipart/related;\n\tboundary=".$boundary."\n";
    $header .= "Content-Disposition:inline\n";

    $content "\n".$boundary."\n";
    $content .= "Content-Type: text/html;charset=iso-8859-1\n";
    $content .= "Content-Transfer-Encoding: 8bit\n\n";

    $content .= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
    $content .= "<html>\n";
    $content .= "<head>\n";
    $content .= "<title>test</title>\n";
    $content .= "</head>\n";
    $content .= "<body>\n";
    $content .= "<p>hier steht was...</p>\n";
    $content .= "</body>\n";
    $content .= "</html>\n";

    $content .= "\n".$boundary."\n";
    $content .= "Content-Type: application/octetstream;\n\tname=".$img_name."\n";
    $content .= "Content-Transfer-Encoding: base64\n";
    $content .= "Content-ID: <modinelogo>\n";

    $content .= "Content-Disposition:inline;filename=".$img_name."\n\n";

    $content .= $img_code;

    $content .= $boundary;

    mail($receiver,$subject,$content,$header); 
    Wär echt suuupppeer wenn mir jemand helfen könnte. Die Mail die ich erhalte zeigt nur den Quellcode an, aber nicht den Text und das Bild...

  • #2
    überprüf mal den source-code der e-Mail

    Kommentar


    • #3
      hat sich erledigt...

      es lag an $header = "MIME-Version: 1.0[COLOR=red]\r[/COLOR] \n";

      Kommentar


      • #4
        auch gut!

        Kommentar


        • #5
          Hallo,

          so jetzt hab ich doch noch ein Problem...

          Wenn ich die E-Mail ausdrucke ist das Bild total "verpixelt". An was kann das liegen? Im E-Mail Programm (MS Outlook) siehts noch richtig gut aus...


          MfG

          Raffael

          Kommentar


          • #6
            Was heisst verpixelt ?
            chansel0049
            ----------------------------------------------------
            if you've reached the bottomline - dig further!
            Übersetzer gesucht? http://www.babelport.com

            Kommentar


            • #7
              eckig halt...ohne antialiasing

              Kommentar


              • #8
                mhm,

                Könnts an den Druckeinstellungen liegen? Qualität etc ...
                chansel0049
                ----------------------------------------------------
                if you've reached the bottomline - dig further!
                Übersetzer gesucht? http://www.babelport.com

                Kommentar


                • #9
                  habs jetzt hinbekommen...

                  das bild war/ist ein gif mit farbtransparenz. ich hab einfach die transparenz rausgenommen und jetzt gehts...komisch.

                  Kommentar


                  • #10
                    Ich greife das Thema hier enfach mal wieder auf.

                    Ich habe hier mir folgendes Script zusamengebastelt:

                    PHP-Code:
                    <?
                    $html_content = implode("", file("newsletter.html"));
                    $boundary = strtoupper(md5(uniqid(time())));

                    $mail_header  = "From:$from\n";
                    $mail_header .= "MIME-Version: 1.0";
                    $mail_header .= "\nContent-Type: multipart/related; boundary=$boundary\n";
                    $mail_header .= "Content-Disposition:inline\n";

                    # commencement of mail-text part... 
                    $mail_header .= "\n--$boundary"; 
                    $mail_header .= "\nContent-Type: text/html;charset=iso-8859-1";
                    $mail_header .= "\nContent-Transfer-Encoding: 8bit";
                    $mail_header .= "\n\n$html_content";

                    # commencement of attachement...
                    $mail_header .= "\n--$boundary\n";

                    $file = "DCP_0405_053.jpg";
                    $file_content = fread(fopen($file,"r"),filesize($file));
                    $file_content = chunk_split(base64_encode($file_content));

                    $mail_header .= "Content-Type: application/octetstream; \n name=".$file."\n";
                    $mail_header .= "Content-Transfer-Encoding: base64\n";
                    $mail_header .= "Content-ID: <DCP_0405_053>\n";

                    $mail_header .= "Content-Disposition:inline;filename=".$file."\n\n";
                    $mail_header .= $file_content;
                    $mail_header .= "\n--$boundary";

                    mail($to, $subject, "", $mail_header);
                    ?>
                    Das Bild in dem Newsletter baue ich so ein: <IMG src="cidCP_0405_053">

                    Die Seite wird richtig als HTML interpretiert, nur das Bild zeigt sich nicht. Es wird aber nicht ein broken Image angezeigt, sondern das Symbol als ob das Bild noch am laden wäre.
                    Zuvor hatte ich im obersten MimeType kein related nur multipart angegeben und auch die Content-Disposition:inline nicht drin. Da hatte es das Bild nur als Anhang aber vollständig drin. Nun habe ich das entsprechend ergänzt - es baut sich in Outlook Express nun auch ganz anders auf - wie man es von sonsigen HTML-Bild Mails gewohnt ist, aber es wird eben nicht angezeigt.

                    Kann mir jemand weiterhelfen? Habe mir bereits aus allem was ich zu diesem Thema hier gefunden habe dieses Script zusammengebastelt.

                    Dank & Grüße,
                    Andi

                    Kommentar

                    Lädt...
                    X