Този сайт ще има ограничена функционалност, докато се извършва тече неговата поддръжка. Ако дадена статия не може реши проблема ви и искате да зададете въпрос, нашата общност е готова да ви помогне на @firefox в Twitter и /r/firefox в Reddit.

Търсене в помощните статии

Избягвайте измамите при поддръжката. Никога няма да ви помолим да се обадите или изпратите SMS на телефонен номер или да споделите лична информация. Моля, докладвайте подозрителна активност на "Докладване за злоупотреба".

Научете повече

Inline images not displayed for HMTL email when having many recipients

  • 3 отговора
  • 1 има този проблем
  • 19 изгледи
  • Последен отговор от Pieter Breugelmans

more options

Use case 1. Two email accounts: personal.email@company.com and newsletter@company.com (yes, same domain / email server) 2. Draft HTML email created, images are embedded as:

3. As a test, email sent FROM: newsletter@company.com and BCC TO personal.email@company.com

Results:

  • Email received on personal.email@company.com
  • Inline images shown as expected

4. Draft HTML email created with *exactly* the same HTML content as (2). 5. Email sent FROM; newsletter@company.com and BCC TO personal.email@company.com and around 340 other email address on the same @company.com domain.

Results:

  • Email received on personal.email@company.com, and so do all other people.
  • Inline images are NOT shown in the email body, but instead the broken image icon is presented.
  • All images appear as attachments to the email.

Analysis on the 'sender side'


  • The copy of the email in the Sent mailbox of newsletter@company.com is shown correctly: all of its +-340 BCC email addresses and the email body correctly displays the inline images.
  • The copy of the email in the Sent mailbox of newsletter@company.com shows that images are referenced as expected like :

... and further down in the source the actual data as ...


2702A7729F6403F6B749C3F8

Content-Type: image/png;

name="kefbdhhlahelkdol.png"

Content-Transfer-Encoding: base64 Content-ID: <part1.33DDFB55.26FD061A@company.com> Content-Disposition: inline;

filename="kefbdhhlahelkdol.png"

iVBORw0KGgoAAAANSUhEUgAAA3QAAAFFCAYAAA...

==> From the sending side all appears to have been processed correctly by Thunderbird.

Analysis on the 'recipient side'


  • People using Thunderbird do not see the inline message, nor seeing these images as attachments.
  • HTML source shows the following:

... and further down ...


2702A7729F6403F6B749C3F8

Content-Type: image/png; name="kefbdhhlahelkdol.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="kefbdhhlahelkdol.png" Content-ID: <<part1.33DDFB55.26FD061A@companycom>>

iVBORw0KGgoAAAANSUhEUgAAA3QAAAFFCAYAAACkKa+aAA...

==> On the receiving side, all image data is available yet inline images are NOT shown.

Root cause


The Content-ID in the received email has TWICE the less then / greater than (or smaller than / larger than) characters:

Content-ID: <<part1.33DDFB55.26FD061A@company.com>>

Note the << >> formatting instead of < >. This should be:

Content-ID: <part1.33DDFB55.26FD061A@company.com>

This is confirmed by the following testcase: 1. Save the BAD email received on personal.email@company.com in step 5 as .eml 2. Edit the Content-ID, changing it from <<part1.33DDFB55.26FD061A@company.com>> to <part1.33DDFB55.26FD061A@company.com> using Notepad++ 3. Open the .eml file in Thunderbird ==> The image is shown inline as expected.

Observations


  • This behaviour seems to occurs ONLY when sending it to many many recipients (in BCC).
  • The draft HTML email I'm putting together is sent out for testing multiple times to myself in BCC, and a few others as well. Each time, the Content-ID reference is formatted correctly.

USER-AGENT: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101

Thunderbird/60.7.0
Use case 1. Two email accounts: personal.email@company.com and newsletter@company.com (yes, same domain / email server) 2. Draft HTML email created, images are embedded as: <img src="data:image/png;base64,iVBORw......" 3. As a test, email sent FROM: newsletter@company.com and BCC TO personal.email@company.com Results: * Email received on personal.email@company.com * Inline images shown as expected 4. Draft HTML email created with *exactly* the same HTML content as (2). 5. Email sent FROM; newsletter@company.com and BCC TO personal.email@company.com and around 340 other email address on the same @company.com domain. Results: * Email received on personal.email@company.com, and so do all other people. * Inline images are NOT shown in the email body, but instead the broken image icon is presented. * All images appear as attachments to the email. Analysis on the 'sender side' ----------------------------- * The copy of the email in the Sent mailbox of newsletter@company.com is shown correctly: all of its +-340 BCC email addresses and the email body correctly displays the inline images. * The copy of the email in the Sent mailbox of newsletter@company.com shows that images are referenced as expected like : <img src="cid:part1.33DDFB55.26FD061A@company.com" .... ... and further down in the source the actual data as ... --------------2702A7729F6403F6B749C3F8 Content-Type: image/png; name="kefbdhhlahelkdol.png" Content-Transfer-Encoding: base64 Content-ID: <part1.33DDFB55.26FD061A@company.com> Content-Disposition: inline; filename="kefbdhhlahelkdol.png" iVBORw0KGgoAAAANSUhEUgAAA3QAAAFFCAYAAA... ==> From the sending side all appears to have been processed correctly by Thunderbird. Analysis on the 'recipient side' -------------------------------- * People using Thunderbird do not see the inline message, nor seeing these images as attachments. * HTML source shows the following: <img src="cid:part1.33DDFB55.26FD061A@company.com" ... ... and further down ... --------------2702A7729F6403F6B749C3F8 Content-Type: image/png; name="kefbdhhlahelkdol.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="kefbdhhlahelkdol.png" Content-ID: <<part1.33DDFB55.26FD061A@companycom>> iVBORw0KGgoAAAANSUhEUgAAA3QAAAFFCAYAAACkKa+aAA... ==> On the receiving side, all image data is available yet inline images are NOT shown. Root cause ---------- The Content-ID in the received email has TWICE the less then / greater than (or smaller than / larger than) characters: Content-ID: <<part1.33DDFB55.26FD061A@company.com>> Note the << >> formatting instead of < >. This should be: Content-ID: <part1.33DDFB55.26FD061A@company.com> This is confirmed by the following testcase: 1. Save the BAD email received on personal.email@company.com in step 5 as .eml 2. Edit the Content-ID, changing it from <<part1.33DDFB55.26FD061A@company.com>> to <part1.33DDFB55.26FD061A@company.com> using Notepad++ 3. Open the .eml file in Thunderbird ==> The image is shown inline as expected. Observations ------------ * This behaviour seems to occurs ONLY when sending it to many many recipients (in BCC). * The draft HTML email I'm putting together is sent out for testing multiple times to myself in BCC, and a few others as well. Each time, the Content-ID reference is formatted correctly. USER-AGENT: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0

Променено на от Pieter Breugelmans

Всички отговори (3)

more options

Are the recipients using TB blocking remote content from your domain, or do they have View/Message Body As set to anything besides Original HTML? Do they see the remote content when their account is accessed through webmail, to test if remote content is blocked by the mail provider?

more options

The domain is not blocked from showing remote content. TB does also NOT show the option that would allow such so it is not detecting it being required which is expected as all the inline images are embedded in the HTML email itself (base64 img src). There is no remote content being loaded.

The mail provider is our own corporate email server and the emails are not leaving the domain. All recipients including myself are within that domain.

What strikes me the most is that I too face the issue, but only when being part of the +-340 other recipients. Both in that case, as well as when I'm drafting it up and sending test emails to myself, I always go through the same process and sent it from the newsletter@company.com account.

EDIT1


The key question is why in case of a sending out a 'bulk' email to many recipients, the Content-ID values get formatted as << ... >> instead of < ... >.

The process as I understand on the sender side (me) it is like this:

  1. Draft up the email with HTML content, embedded / inline images
  2. Add all recipients (BCC)
  3. Sent the email

In the last step, Thunderbird processes the email and transforms the embedded base64 encoded image src values to CIDs. That 'processed' email is saved into the Sent folder and shows the correct formatting as < ... >.

Is the copy of the processed email that TB saves in the Sent box an exact copy of the data that is sent to the mail server?

Променено на от Pieter Breugelmans