Inline images not displayed for HMTL email when having many recipients
Use case 1. Two email accounts: email@example.com and firstname.lastname@example.org (yes, same domain / email server) 2. Draft HTML email created, images are embedded as:
3. As a test, email sent FROM: email@example.com and BCC TO firstname.lastname@example.org
- Email received on email@example.com
- Inline images shown as expected
4. Draft HTML email created with *exactly* the same HTML content as (2). 5. Email sent FROM; firstname.lastname@example.org and BCC TO email@example.com and around 340 other email address on the same @company.com domain.
- Email received on firstname.lastname@example.org, 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 email@example.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 firstname.lastname@example.org shows that images are referenced as expected like :
... and further down in the source the actual data as ...
Content-Transfer-Encoding: base64 Content-ID: <part1.33DDFB55.26FD061A@company.com> Content-Disposition: inline;
==> 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 ...
Content-Type: image/png; name="kefbdhhlahelkdol.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="kefbdhhlahelkdol.png" Content-ID: <<part1.33DDFB55.26FD061A@companycom>>
==> On the receiving side, all image data is available yet inline images are NOT shown.
The Content-ID in the received email has TWICE the less then / greater than (or smaller than / larger than) characters:
Note the << >> formatting instead of < >. This should be:
This is confirmed by the following testcase: 1. Save the BAD email received on email@example.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.
- 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
Дополнительные сведения о системе
- User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
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?
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 firstname.lastname@example.org account.
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:
- Draft up the email with HTML content, embedded / inline images
- Add all recipients (BCC)
- 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?
A little bump. :-)