Ankündigung

Einklappen
Keine Ankündigung bisher.

Inline img bei HTML Mail Problem

Einklappen

Neue Werbung 2019

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

  • Inline img bei HTML Mail Problem

    Hallo zusammen,

    ich habe zur Abwechslung mal ein Problem -.-!

    Ich möchte eine HTML- Mail mit mehreren Bildern generieren.
    Die Bilder sollen nach folgenden Schema eingebunden werden

    ---Bild---

    Text

    ---Bild---

    Code sieht so aus:

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    ### Konfiguration ###

    // Empfänger
    $empfang     $mail;

    // Absender
    $sender     'Absender <xxx@xxx.de>';


    // Betreff
    $subject    "Textempfehlung ".$headerN." von ".$name;

    //Vordefinierte Nachricht
    $message     "Ich bin eine Vordefinierte Message";

    //Usernachricht
    $indi_text    $text;

    // Textlink
    $urlneu        $_SESSION['url'];

    // Trennung der einzelnen Teile der Mail 
    $boundary     "" md5(microtime());

    // Bildvariablen definieren
    $CID         md5(uniqid(mt_rand(),1));

    $img_path_top     "img/texte/texte-top.png";
    $img_name_top     "texte-top.png";

    $img_path_bottom "img/texte/texte-bottom.png";
    $img_name_bottom "texte-bottom.png";

    // Kopfteil für die HTML-Mail
    $header      ="MIME-Version: 1.0\n"
    $header     .="Content-type: multipart/related; boundary=\"".$boundary."\"; type=\text/plain\"\n";
    $header        .="From: $sender";

    // Bilder umwandeln

    #Bild Top
    $CID1             md5(uniqid(mt_rand(),1));
    $bild_datei_t     fopen($img_path_top,"rb");
    $str_t             fread($bild_datei_tfilesize($img_path_top));
    $bild_codiert_t     chunk_split(base64_encode($str_t));
    $content         ="Content-Type:image/png\n";
    $content        .="Content-ID: <$CID1.$img_name_top>\n";
    $content        .="Content-Transfer-Encoding: base64\n";
    $content        .="Content-Disposition: inline; filename=\"$img_name_top\"\n\n";
    $content        .= $bild_codiert_t;
    fclose($bild_datei_t);

    # Bild bottom
    $CID2             md5(md5(uniqid(mt_rand(),1)));
    $bild_datei_b     fopen($img_path_bottom,"rb");
    $str_b             fread($bild_datei_bfilesize($img_path_bottom));
    $bild_codiert_b     chunk_split(base64_encode($str_b));
    $content         .="Content-Type:image/png\n";
    $content        .="Content-ID: <$CID2.$img_name_bottom>\n";
    $content        .="Content-Transfer-Encoding: base64\n";
    $content        .="Content-Disposition: inline; filename=\"$img_name_bottom\"\n\n";
    $content        .= $bild_codiert_b;
    fclose($bild_datei_b);

    // Textmail Inhalt
    $MailBody      "--".$boundary."\n"
    $MailBody    .= "Content-Type: Text/HTML; charset=iso-8859-1\n"
    $MailBody    .= "Content-Transfer-Encoding: quoted-printable\n\n"
    $MailBody    .= "<img src=cid:$CID1.$img_name_top>"."<br>"."\n";
    $MailBody    .= "Hier der Usertext"."<br>";
    $MailBody    .= $indi_text."<br>"."\n"
    $MailBody    .= "Hier unser Text"."<br>";
    $MailBody    .= $message."<br>"."\n";
    $MailBody    .= "<a href=\"$urlneu\">".$headerN."</a><br>" ."\n\n";
    $MailBody    .= "<img src=cid:$CID2.$img_name_bottom>"."<br>"."\n";
    $MailBody    .= "--".$boundary."\n"

    $MailBody        .= $content;
    $MailBody        .= "--" $boundary "--"."\n";

    ### Ende Konfiguration ###



    mail($empfang$subject$MailBody$header);
    Zusatz: die $SESSION['url'] wird auf der seite erzeugt, wo dieses script eingebunden ist.

    Zum Problem:

    Die Mail wird ohne Probleme versendet... aber es wird immer nur 1 Bild angezeigt. Beim anderen erscheint das Symbol für "defekte Grafik".

    Ich hab schon mit der "cid:" Zuweisung rumgespielt, aber selbst wenn ich die direkt zuweise komme ich immer auf dasselbe Ergebnis.

    Desweiteren ist es so, wenn ich den Block "Bild bottom" und "bild top" in der Reihenfolge austausche wird immer das jeweils im Quelltext unten stehende Bild angezeigt...

    Ich hab schon google und den Rest der Welt befragt, leider ohne Erfolgt - vllt auch durch meine geistige Unfähigkeit xD!

    Hier im Forum hab ich leider auch nix gefunden - genausowenig wie im Manual - oder ich hab die Lösung nicht verstanden...

    Vllt kann mir hier jmd den richtigen Denkanstoß verpassen. Ist mein erster Versuch mit mail().

    Besten Dank schonmal,

    Greetz

    Coop


  • #2
    Zitat von Cooper_012 Beitrag anzeigen
    Ist mein erster Versuch mit mail().
    Dann lass es auch damit gut sein. Wenn du es genau wissen möchtest, kannst du dich mit dem RFC beschäftigen, andernfalls kannst du eine fertige Klasse dafür verwenden, wenn du unbedingt Inline-Grafiken zu deiner E-Mail hinzufügen möchtest. Inline-Grafiken möchte ich weder verschicken noch bekommen, zuviel unnötiger Overhead.
    "Mein Name ist Lohse, ich kaufe hier ein."

    Kommentar


    • #3
      Ok, das ganze soll ein "Tell-a-friend-Script" für bestimmte URL's werden. Die Frage ist einfach, wie ich das optisch brauchbar umsetze... Ebay, Amazon und Co, haben ja auch optisch ansprechende Mails und das ist doch sicherlich nicht alles mit CSS gelöst oder?!

      Greetz

      Kommentar


      • #4
        Dann verlink doch einfach per http auf deine Bilder?
        "Mein Name ist Lohse, ich kaufe hier ein."

        Kommentar


        • #5
          Zitat von Chriz Beitrag anzeigen
          Dann verlink doch einfach per http auf deine Bilder?
          Und dann werden die angezeigt?!
          Ok... aber dann werden die offline nicht angezeigt oder?!

          Greetz

          Kommentar


          • #6
            Zumindest hat der Client dann die Wahl, ob er die Bilder überhaupt herunterlädt. Ist ja nicht sinnvoll, megabyteweise E-Mail-Content durchs Netz zu schicken. Erst recht nicht, wenn dann im Mail-Client vielleicht Bildanzeigen ausgeschaltet sind.

            Als kleinen Nebeneffekt hast Du dann noch eine kleine Rückmeldung, ob Deine Mails gelesen werden (wenn Leser Bilder eingestellt hat zumindest).
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Zitat von nikosch Beitrag anzeigen
              Als kleinen Nebeneffekt hast Du dann noch eine kleine Rückmeldung, ob Deine Mails gelesen werden (wenn Leser Bilder eingestellt hat zumindest).
              Weshalb es m.W. in aktuellen Mailclients eben nicht mehr per Default eingestellt ist.
              Und auch in den Webinterfaces der Freemail-Anbieter ist es heute oft so, dass solche Bilder durch einen Hinweis ersetzt werden, der eine explizte Aktion vom Nutzer erfordert, wenn er solche über HTTP eingebundenen Bilder angezeigt bekommen möchte.



              Zitat von Cooper_012
              Ok, das ganze soll ein "Tell-a-friend-Script" für bestimmte URL's werden.
              Dann ist die Anzeige der Bilder sowieso dein kleinstes Problem.

              Dass sich jemand, der über diesen Dienst eine Mail von dir bekommt, dadurch belästigt fühlt, und dich als sog. Mitstörer in die Haftung nimmt bzw. dich (kostenpflichtig) zur Unterlassung auffordert, ist ein reelles Risiko.
              Die Betreiber großer Seiten haben 'ne Rechtsabteilung, die das handeln kann - aber als Privatperson wäre ich mit sowas vorsichtig.

              Kommentar


              • #8
                Zitat von ChrisB Beitrag anzeigen

                Dann ist die Anzeige der Bilder sowieso dein kleinstes Problem.

                Dass sich jemand, der über diesen Dienst eine Mail von dir bekommt, dadurch belästigt fühlt, und dich als sog. Mitstörer in die Haftung nimmt bzw. dich (kostenpflichtig) zur Unterlassung auffordert, ist ein reelles Risiko.
                Die Betreiber großer Seiten haben 'ne Rechtsabteilung, die das handeln kann - aber als Privatperson wäre ich mit sowas vorsichtig.
                Ok, dann danke erstmal für die Hinweise.

                Also sollte ich auf ne Weiterempfehlung via Mail verzichten. Dann lieber auf die Bookmarkdienste umsteigen oder gibts da auch bedenken.

                Ich wollte mit dem Mailer eigentlich nur Leuten die die Site gut finden, die Möglichkeit bieten direkt Freude per Mail zu informieren.

                Aber wenn ichs mir recht überlege ist das Spam-/Missbrauchsrisiko weit höher als der Nutzen.

                Könnt ihr mir denn aus der Erfahrung heraus Alternativen empfehlen?!

                Greetz Coop

                Kommentar

                Lädt...
                X