Image SRC in Html Email

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

  • Image SRC in Html Email

    Mal ne Frage für 'nen blonden:
    will in einer mit PHP verschickten Email ein Bild einbinden, also Html Mail.
    Tja, aber wie referenziere ich denn das Bild (<img src="?????" />)
    PHP-Code:
    $file $_POST['filename'];// Orginalname des Bildes mit Pfad
    $file_name "postcard.jpg";//Name des Bildes im Anhang
    $from $_POST['from'];
    $to $_POST['to'];
    $nachricht "
    <html>
    <head>
      <title>Test</title>
    </head>
    <body>
      <p>"
    .$_POST['mailtext']."</p>
    <!-- Hier der causus cnactus: // -->
    <img src=\"postcard.jpg\" border=\"0\" width=\"400\" height=\"400\"  />
    </body>
    </html>
    "
    ;
    $bodytext $nachricht;
    $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";
    $message .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
    $message .= $bodytext."\r\n";
    $message .= "--".$boundary."\r\n";
    $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,$_POST['betreff'],$message,$mail_header); 
    Das Bild im Anhang mitzuschicken funzt einwandfrei,
    aber weder:
    <img src=\"postcard.jpg\"...
    noch
    <img src=\"".$file."\"...
    noch
    <img src=\"".$file_name."\"...

    zeigen das Bild in der Mail.
    Any suggestions?
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

  • #2
    Weil dein Mailclient niemals auf einer URL steht, deswegen mit relativen URLs nichts anfangen kann, so maximal auf localhost bezieht und dort wohl nicht fündig wird.

    Lösung: absolute URL!

    Kommentar


    • #3
      Besser du schickst das Bild einfach mit. Dazu erzeugst Du deine Mails am einfachsten mit den PEAR-Klassen Mail und Mail_Mime. Dazu gibt es auch Tutorials. Außerdem ist die Doku auch schon recht brauchbar.

      http://pear.php.net/
      http://pear.php.net/package/Mail
      http://pear.php.net/package/Mail_Mime

      Tutorial: http://www.contentmanager.de/magazin...enden_php.html
      Ich denke, also bin ich.
      Manche sind trotzdem!

      Kommentar


      • #4
        THX ihr beiden !!
        Aber:
        Weil dein Mailclient niemals auf einer URL steht, deswegen mit relativen URLs nichts anfangen kann, so maximal auf localhost bezieht und dort wohl nicht fündig wird.

        Lösung: absolute URL!
        => Ist klar, war ja nur ein BSP. um irgendetwas rein zu schreiben.
        Absolute URL geht nicht, da das Image nur kurz erzeugt, per Mail verschickt und dann wieder (vom Html Server) gelöscht wird....

        Besser du schickst das Bild einfach mit. Dazu erzeugst Du deine Mails am einfachsten mit den PEAR-Klassen Mail und Mail_Mime.
        Das Bild wird ja als Attachment mitgeschickt, liegt also beim Empfänger auf dem Rechner und müßte ja auch referenzierbar sein.

        Würde es gerne hinbekommen, das Problem ohne die PEAR Klassen zu lösen. Wenn das nicht geht werde ich sie mal anschauen...
        Weil wenn ich Seiten für Freunde mache muß ich ja dann immer auch die PEAR Klasse auf einem neuen Server einbinden...

        Nichtsdestotrotz: muchas Gracias.....
        "I don't want to belong to any club that would accept me as a member."

        Groucho Marx

        Kommentar


        • #5
          Du schießt dir aber auch durchs Knie in die Brust ...

          Zuerstmal: HTML-Mails sind böse, überlege es dir nochmal.
          Die Idee "Referenz auf die Anlage in der Mail" kannst du vergessen, geht einfach nicht, weil sonst jeder Virenversender seine .exe sofort autostarten lassen würde.

          Bette das Bild direkt ein (Stichwort multipart, boundary etc.) oder referenziere es mit
          <img src="http://www.example.com/once.php?picid=foobar">
          ... wobei ... HTML ist immernoch böse ... bei mir würde es z.B. gar nicht angezeigt ... u.U. sogar als Spam verworfen.

          Kommentar


          • #6
            Bette das Bild direkt ein (Stichwort multipart, boundary etc.) oder referenziere es mit
            Werde ich mich wohl dran machen, danke für die Antworten...
            "I don't want to belong to any club that would accept me as a member."

            Groucho Marx

            Kommentar


            • #7
              Das hat bei mir auch alles nicht funktioniert, und auf den ganzen PEAR Overhead hatte ich auch keine Lust. Also Pegasus Mail angeschmissen, und nachgeguckt, wie's geht
              es muss ein zusätzlicher header übergeben werden:

              'Content-Id: HierMussWasEindeutigesStehen' + $eol

              danach kann man das Bild mit src="cid:HierMussWasEindeutigesStehen" in der HTML-Mail referenzieren.

              Also bei mir klappt das jetzt.

              Kommentar

              Lädt...
              X