Jak utworzyć wiadomość e-mail z osadzonymi obrazami, która jest zgodna z większością klientów pocztowych

Stworzyliśmy system, który umożliwia osadzanie obrazu w wychodzącej wiadomości e-mail.

Oto oryginalna wiadomość, którą tworzy nasz system. Ten przykład zawiera załącznik i osadzony obraz.

Mime-Version: 1.0
From: ...
To: ...
CC: 
Subject: test
x-sender: ...
x-mailer: ...
Content-Type: multipart/mixed; boundary="-------------...A128803765634794"

---------------...A128803765634794
Content-Type: multipart/related; boundary="-------------...B128803765634796"

---------------...B128803765634796
Content-Type: text/html; charset="UTF-8"

<p style="margin: 0; padding: 0"><img src="cid:083.gif" alt="" /></p>

---------------...B128803765634796
Content-type: image/gif; name="083.gif"
Content-ID: <083.gif>
X-Attachment-Id: 083.gif
Content-Disposition: Embedded; filename="083.gif"
Content-transfer-encoding: base64

............................................................................
............................................................................
......................................................
---------------PineappleCodeB128803765634796--
---------------PineappleCodeA128803765634794
Content-type: image/gif; name="waiting.gif"
Content-Disposition: Attachment; filename="waiting.gif"
Content-transfer-encoding: base64

............................................................................
............................................................................
......................................................
---------------PineappleCodeA128803765634794--

Czy jest inny nagłówek, który powinienem dodać lub którego powinienem przestrzegać?

Zauważyłem jedną rzecz ... Domyślam się, że jest to po części mój problem, a po części Gmails. ale w każdym razie chciałbym, żeby to przestało się dziać

Po otrzymaniu e-maila do Gmaila I get

Obrazy nie są wyświetlane.
Wyświetl obrazy poniżej - Zawsze wyświetlaj obrazy z ...

Osadzony obraz jest następnie wyświetlany jako załącznik do obrazu (tak jak mój inny załącznik do obrazu)

Klikam wyświetl obrazy poniżej, a mój obraz jest wyświetlany w treści wiadomości e-mail, ale nie jest usuwany z sekcji załączniki.

Jeśli wrócę do mojej skrzynki in i z powrotem do e-maila to wygląda dobrze.

Nie rozumiem, dlaczego tak się dzieje. It it not a linked image (z zewnętrznego adresu URL) i nie dzieje się to podczas wysyłania osadzonych obrazów z Gmaila do Gmaila. To sprawia, że myślę, że robię coś złego i obawiam się, że może to wpłynąć na innych odbiorców.
Author: George Bailey, 2010-10-26

2 answers

Odniosłem sukces z dokładnie tymi samymi nagłówkami, których używasz, z następującymi różnicami:

 28
Author: dkarp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-15 03:29:02

Miałem problemy z ładowaniem obrazów w Gmailu i okazało się, że źle używam biblioteki Pear Mail_Mime w PHP. Jak już wspomniano, Content-ID musi być sformatowany jak identyfikator wiadomości. Biblioteka Pear Mail_Mime spróbuje dodać domainID do Twojego Content-ID, jeśli taki nie jest dostarczony. Spróbuje również ponownie zastąpić te Content-ID w treści HTML wiadomości e-mail, aby utrzymać link. W moim przypadku ten krok nie powiódł się, co skończyło się zerwaniem linku ze znacznika HTML do Załącznik MIME. Tak więc Gmail odmówił wyświetlania obrazu w linii. Jednak obraz został wyświetlony jako załącznik.

 2
Author: Kim Anthony Groves,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-29 10:17:53