php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.06.2010, 23:25  
Neuer Benutzer
 
Registriert seit: 28.05.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Cooper_012 befindet sich auf einem aufstrebenden Ast
Standard 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
Cooper_012 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.06.2010, 23:43  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
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.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 28.06.2010, 23:46  
Neuer Benutzer
 
Registriert seit: 28.05.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Cooper_012 befindet sich auf einem aufstrebenden Ast
Standard

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
Cooper_012 ist offline  
Alt 28.06.2010, 23:49  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Dann verlink doch einfach per http auf deine Bilder?
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 28.06.2010, 23:50  
Neuer Benutzer
 
Registriert seit: 28.05.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Cooper_012 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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
Cooper_012 ist offline  
Alt 28.06.2010, 23:55  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

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).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 29.06.2010, 00:06  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
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:
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.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline  
Alt 29.06.2010, 07:32  
Neuer Benutzer
 
Registriert seit: 28.05.2010
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Cooper_012 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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
Cooper_012 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mail funktion problem preikarm PHP Tipps 2010 2 27.01.2010 21:32
[Erledigt] Ein mail() Problem Peeters PHP Tipps 2009 8 28.12.2009 17:28
html formular mit einer php mail funktion basti-erfurt Scriptbörse 3 07.12.2008 15:21
PHPmailer: Problem Bilder extern / absolut verlinken, nicht als inline attachment brtl PHP-Fortgeschrittene 2 16.09.2008 20:59
[Erledigt] HTML Mail mit Lücken mitten in den Worten, wie kommt das? DeeFour PHP-Fortgeschrittene 2 29.05.2008 15:47
problem mit mail()!!! coldi1000 PHP Tipps 2008 4 13.11.2007 22:49
text kürzen = kein problem was is aber mit html nfo PHP Tipps 2007 9 05.02.2007 12:42
mail() und boundary Problem Gef PHP Tipps 2006 4 02.03.2006 00:47
php oder css problem? Wie konfiguriere ich mail header PHP Tipps 2006 1 28.02.2006 05:43
Mail problem Marian PHP Tipps 2005-2 11 27.09.2005 18:15
Problem mit mail() PHP Tipps 2005 18 06.05.2005 18:01
php mail() header &amp;amp;amp;amp;amp;amp; Spam Problem PHP-Fortgeschrittene 4 04.05.2005 12:31
[Erledigt] html mit mail versenden PHP-Fortgeschrittene 0 27.01.2005 19:53
html mail PHP Tipps 2004 2 03.08.2004 09:05
Problem mit mail() - Funktion PHP Tipps 2004 2 06.07.2004 18:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
cid content-disposition inline filename, php mail mit inline bild, php mail image inline, php html mail cid, html email img, php mail content-disposition: inline, inline-img, php html mail img inline, \mail.img\, img html email, html mail inline png, mehere bilder inline mail, php mail inline image, html mail google img, http://www.php.de/php-einsteiger/69314-inline-img-bei-html-mail-problem.html, php html mail inline img, php html mail, html mail embed base64 image cid, html-mails mit inline images verschicken, html content type php img in email problem

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum