HTML - Bilder aus Anhang im Body einbetten
Hallo zusammen,
ich habe eine Frage zu eingebetteten Bilder in HTML.
Über PHP sende ich mit "sendMailMessage" Mails raus und hänge darüber auch Attachments an.
z.B.:
Soweit so gut. Die Mails kommen sauber mit den Anhängen an.
Den Inhalt der Mail gestalte ich über HTML.
Jetzt würde ich gerne in der HTML Datei, bzw. in dem Mail Body die Anhänge einbetten, so dass diese nicht aus dem Internet abgerufen werden.
Leider bekomme ich dies nicht zum laufen.
Benutze ich solch ein Code, wird mir immer "wird geladen" angezeigt, aber das Bild wird nicht wirklich angezeigt.
Kann mir hierbei jemand einen Tipp geben, woran dies liegen könnte oder was ich falsch mache?
Danke im Voraus.
Grüße
Phil
ich habe eine Frage zu eingebetteten Bilder in HTML.
Über PHP sende ich mit "sendMailMessage" Mails raus und hänge darüber auch Attachments an.
z.B.:
$attachments =
array (
'external_data/svb.png',
'external_data/my1.png'
);
Soweit so gut. Die Mails kommen sauber mit den Anhängen an.
Den Inhalt der Mail gestalte ich über HTML.
Jetzt würde ich gerne in der HTML Datei, bzw. in dem Mail Body die Anhänge einbetten, so dass diese nicht aus dem Internet abgerufen werden.
Leider bekomme ich dies nicht zum laufen.
<img width=100 height=100 id="1" src="cid:my1.png">
Benutze ich solch ein Code, wird mir immer "wird geladen" angezeigt, aber das Bild wird nicht wirklich angezeigt.
Kann mir hierbei jemand einen Tipp geben, woran dies liegen könnte oder was ich falsch mache?
Danke im Voraus.
Grüße
Phil
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1296618662
Url: https://administrator.de/contentid/1296618662
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
ich würde an deiner stelle, wenn es sich nicht um allzu große Images handelt, diese über Base64 als srcString einbinden.
Base64 von einem file:
Diese 2 Links geben dir etwas hintergrundwissen:
https://sendgrid.com/blog/embedding-images-emails-facts/
https://mailtrap.io/blog/embedding-images-in-html-email-have-the-rules-c ...
Alternativ würde ich dass ganze über den PhpMailer abfackeln, der kümmert sich um alles
https://github.com/PHPMailer/PHPMailer
ich würde an deiner stelle, wenn es sich nicht um allzu große Images handelt, diese über Base64 als srcString einbinden.
Base64 von einem file:
$path = 'myfolder/myimage.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
Diese 2 Links geben dir etwas hintergrundwissen:
https://sendgrid.com/blog/embedding-images-emails-facts/
https://mailtrap.io/blog/embedding-images-in-html-email-have-the-rules-c ...
Alternativ würde ich dass ganze über den PhpMailer abfackeln, der kümmert sich um alles
https://github.com/PHPMailer/PHPMailer
Ich würde bei Mails sowieso mit einer Bibliothek ala PHPMailer arbeiten das vermeidet viele Anfängerfehler bezüglich Header/Kodierung&Co, da sieht das so aus:
und dann im HTML wie gewohnt:
$mail->AddEmbeddedImage('img/2u_cs_mini.jpg', 'logo_2u');
<img width=100 height=100 id="1" src="cid:logo_2u">
ich würde an deiner stelle, wenn es sich nicht um allzu große Images handelt, diese über Base64 als srcString einbinden.
Das blocken viele Mailer aber auch bevorzugt und erhöht auch meist den SPAM Score.Zitat von @Gerber:
Ich habe es nun mit dem base64 Code versucht.
Über PHP bekomme ich den Code zum Bild konvertiert.
Allerdings zeigt es mir das Bild nicht in der E-Mail an.
Wenn ich z.B. online den String in ein HTML Editor einfüge, bekomme ich es dort korrekt angezeigt.
Jemand eine Idee?
Habe ich oben schon geschrieben, das liegt daran das die meisten Mail-ClientsIch habe es nun mit dem base64 Code versucht.
Über PHP bekomme ich den Code zum Bild konvertiert.
Allerdings zeigt es mir das Bild nicht in der E-Mail an.
Wenn ich z.B. online den String in ein HTML Editor einfüge, bekomme ich es dort korrekt angezeigt.
Jemand eine Idee?
a) dies aus Sicherheitsgründen per Default blockieren
b) und deren Rendering-Engine das nicht beherrschen
c) diese Methode vielfach die Erkennung als SPAM erhöht
Deswegen: Von dieser Methode besser die Finger lassen.