it-swarm.com.de

Base64-Bilder zu Google Mail

Ich erstelle einige Inline-Bilder für eine E-Mail, die vom iPad gesendet wird. Sieht in allen Desktop-E-Mail-Clients gut aus, aber Google Mail scheint das base64-Image nicht zu mögen und es wird als Text angezeigt.

Hat jemand Glück, Bilder mit base64 und gmail einzubetten? Oder kennen Sie eine bessere Lösung zum Versenden von HTML-E-Mails mit Bildern vom iPad?

46
Steven Baughman

Die Links von Moin Zaman zeigen veraltete Testergebnisse (ab 2008). Ab meinem heutigen gründlichen Test unterstützt Google Mail die Anzeige eingebetteter Bilder für beide Methoden.

Inline-Codierung des Base64-Bilds in <img src="..."> Verwenden

<html><body><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9QAAADmCAIAAAC77FroAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO..."></body></html>

Verwenden Sie base64-codiertes Bild als Anhang

Message-ID: <[email protected]>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [xxx.xxx.xxx.xxx]

Content-Type: multipart/related;
    boundary="_038_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_";
    type="multipart/alternative"
MIME-Version: 1.0
Return-Path: [email protected]
X-OriginatorOrg: example.com

--_038_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_
Content-Type: multipart/alternative;
    boundary="_000_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_"

...skipping Content-Type: text/plain which would be here for this example...

--_000_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html><body><img border=3D"0" width=3D"980" height=3D"230" id=3D"Picture_x0020_1" src==3D"cid:[email protected]"></body></html>

--_000_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_--

--_038_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_
Content-Type: image/png; name="image001.png"
Content-Description: image001.png
Content-Disposition: inline; filename="image001.png"; size=32756;
    creation-date="Mon, 08 Oct 2012 15:27:07 GMT";
    modification-date="Mon, 08 Oct 2012 15:27:07 GMT";
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAA9QAAADmCAIAAAC77FroAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAf5lJREFUeF7tvQlgVdW18L+ZR20mpsSLCYlBQKwgwRCMr9TAqzg0CAl98Y9a
ikBfHxL1A/r0tUr77Feg1mDav4LUijxTk8hLRIstQ2mJhEiAWAEpNCGRa8KUSQXCzLf2cOZz7j33
5s5Zx6j3nruHtX97n33WWWfttbtdv36d4IEEkAASQAJIAAkgASSABJCA/wl0938VWAMSQAJIAAkg
ASSABJAAEkAClAAq3zgOkAASQAJIAAkgASSABJBAgAig8h0g0FgNEkACSAAJIAEkgASQABJA5RvH
...

Um Ihre eigenen Tests durchzuführen, können Sie mit einer der folgenden Techniken E-Mails mit eingebettetem Inline-Bild senden

Senden Sie eine E-Mail mit einer der oben genannten Methoden an Ihr Google Mail-Konto. Öffnen Sie dann die E-Mail im Google Mail-Web-Client (jeder funktionierende Browser) und wählen Sie mit dem Abwärtspfeil neben der Schaltfläche Antworten die Option Original anzeigen. Dies zeigt Ihnen, wie es empfangen wird.

Ich denke, die beste Vorgehensweise ist, das eingebettete Bild als Anlagemethode zu verwenden.

Wenn ich in meinen Tests mit Gmail Web Client 30 Bilder in einer einzelnen E-Mail unterschiedlicher Größe gesendet habe, werden einige Bilder nicht erfolgreich geladen und zeigen den Bildcontainer, nicht jedoch das Bild. Versuchen Sie in diesem Fall, die Seite neu zu laden.

In meinem Test (Windows 7) ...

  • Chrome (neueste Version) benötigte einige Nachladevorgänge, um alle 30 Bilder erfolgreich zu laden/anzuzeigen
  • Opera (spätestens) konnte nicht alle 30 Bilder unabhängig von der Anzahl der Nachladevorgänge erfolgreich anzeigen
  • Firefox (neueste Version) zeigte konsistent alle 30 Bilder ohne Probleme an
  • Internet Explorer 9 (neueste Version) zeigte alle 30 Bilder ohne Probleme an
  • Safari (spätestens) zeigte konsistent alle 30 Bilder ohne Problem
21
cusman

Es scheint keine offizielle Dokumentation zu geben, aber Google Mail unterstützt dies definitiv nicht, weder inline noch als Anhang in base64.

Hier sind einige Tests, die der Kampagnenmonitor durchgeführt hat:
Bilder in E-Mail einbetten
Einbetten von Bildern überarbeitet

8
Moin Zaman

Stellen Sie sicher, dass Sie den Inhaltstyp eingestellt haben: multipart/mixed; , Boundary und Content-Transfer-Encoding: base64

4
valexa

Dies funktioniert einwandfrei: Ich habe zwei src-Attribute festgelegt, eines mit Daten: image/png; base64 und das andere mit dem Link zum Bild. Wenn Sie Google Mail verwenden, wird das Attribut "src with link" verwendet. Wenn Sie einen anderen E-Mail-Client verwenden, wird das Attribut "src with data" verwendet: image/png; base64. Versuch es!. du wirst sehen.

0
Ivan Extremera