2016-06-04 20 views
0

Ich erhalte HTML-E-Mails mit eingebetteten Bildern und die Bilder werden wie erwartet in Google Mail angezeigt. Doch in meinem html nicht gefunden BildGmail-E-Mail von PHP-API empfangen, die kein eingebettetes Bild anzeigt

folgender Screenshot zeigt gebrochenes Bild in Mail-Text und in inspizieren Elemente ist

<img src="cid:[email protected]" v:shapes="_x0000_i1025" height="1227" width="1168"> 

Content-type: multipart/related.

enter image description here

+0

Sie können versuchen, dies [Tutorial] (https://sendgrid.com/blog/embedding-images-emails-facts/) zu überprüfen, wie Sie Bilder in den E-Mails einbetten. Es wird hier erklärt, wie man es macht, indem man CID-eingebettete Bilder (Inline-Bilder) und Inline-Einbettung (Base64-Kodierung) verwendet. Sie können hier auch die Vor- und Nachteile der beiden kennen. Außerdem enthält es einen Beispielcode, der den Betrachtern als Leitfaden dient. Überprüfen Sie auch diese [SO Frage] (https://stackoverflow.com/questions/24461133/can-you-and-how-do-you-embed-images-in-email-when-use-the-gmail- api? rq = 1) für weitere Informationen. – KENdi

+0

Ich möchte Bilder in E-Mails empfangen, ich versuche nicht, E-Mails zu senden –

Antwort

0

Wie Sie selbst angeben, erhalten Sie einen multipart/related Mime-Typen, aber es sieht aus wie ich ist nur am text/html Teil suchen.

A multipart/related MIME-Typ bedeutet, dass es mindestens 2 Teile (jeweils mit einem eigenen MIME-Typ) sind, so dass abgesehen von den text/html, gibt es wahrscheinlich einen image/* MIME-Typen Teil.

Im Fall von eingebetteten Bildern sendet die Google Mail-API diese in verschiedenen Teilen. Wie Sie in Ihrem Fall sehen können, hat der HTML-Teil einen Verweis auf das eingebettete Bild cid:[email protected], dies ist der Content-ID Wert des image/* MIME-Typ-Teils.

Also müssten Sie den image/* Teil lesen, um seinen Wert zu erhalten und ihn zu verwenden, um die cid im HTML zu ersetzen.