Обсуждение: Images in news mails

Поиск
Список
Период
Сортировка

Images in news mails

От
Tobias Bussmann
Дата:
Ever since HTML emails were introduced for project news in around 2020, I have wondered why, on my system (macOS using
AppleMail as the MUA), emails were sometimes displayed in a distorted way. Today, I took the time to track it down.
AppleMail ignores the size if the image source is provided inline via CID and not referenced externally [2, footnote
3].As a workaround, the width can be specified again in the 'style' tag, as I have done in the attached patch. 

Another issue is that the Slonik logo is displayed again at the end of the email. In contrast to the first issue, this
affectsthe Mail app on iOS as well. My analysis suggests that this is caused by the MIME structure of the email: 
- multipart/mixed
  - multipart/alternative
    - text/plain
    - text/html
  - image/png with Content-Disposition: inline

This issue is resolved if I change the structure to the following:
- multipart/alternative
  - text/plain
  - multipart/related
    - text/html
    - image/png with Content-Disposition: inline

This change could be made in the send_simple_mail() function in the pgweb/mailqueue/util.py, but it would require
furthertesting and refactoring to support regular and inline attachments simultaneously. I don't feel confident enough
todo this without setting up a working test system of pgweb. 
An alternative solution could be to utilise the embed_images_in_html() function in pgweb/news/util.py instead of
attachingthe image to the email. 

With these changes applied, the mail is displayed correctly on Apple Mail [4].

Best regards
Tobias

[1]: <https://pasteboard.co/LBjIKy2V1Woe.png>
[2]: <https://www.caniemail.com/features/html-width/>
[3]: <https://pasteboard.co/WVLPyCzYaxB9.png>
[4]: <https://pasteboard.co/UGMvMYvpMZXG.png>


Вложения

Re: Images in news mails

От
"Jonathan S. Katz"
Дата:
On 9/4/25 3:49 PM, Tobias Bussmann wrote:
> Ever since HTML emails were introduced for project news in around 2020, I have wondered why, on my system (macOS
usingApple Mail as the MUA), emails were sometimes displayed in a distorted way. Today, I took the time to track it
down.Apple Mail ignores the size if the image source is provided inline via CID and not referenced externally [2,
footnote3]. As a workaround, the width can be specified again in the 'style' tag, as I have done in the attached
patch.
> 
> Another issue is that the Slonik logo is displayed again at the end of the email. In contrast to the first issue,
thisaffects the Mail app on iOS as well. My analysis suggests that this is caused by the MIME structure of the email:
 
> - multipart/mixed
>    - multipart/alternative
>      - text/plain
>      - text/html
>    - image/png with Content-Disposition: inline
> 
> This issue is resolved if I change the structure to the following:
> - multipart/alternative
>    - text/plain
>    - multipart/related
>      - text/html
>      - image/png with Content-Disposition: inline
> 
> This change could be made in the send_simple_mail() function in the pgweb/mailqueue/util.py, but it would require
furthertesting and refactoring to support regular and inline attachments simultaneously. I don't feel confident enough
todo this without setting up a working test system of pgweb.
 
> An alternative solution could be to utilise the embed_images_in_html() function in pgweb/news/util.py instead of
attachingthe image to the email.
 
> 
> With these changes applied, the mail is displayed correctly on Apple Mail [4].

This has plagued me for years, and I'm so happy you tracked this down!

The patch looks good; have you tested in a few other mail clients? I 
haven't had a chance to test yet.

Thanks,

Jonathan

Вложения

Re: Images in news mails

От
Tobias Bussmann
Дата:
Am 05.09.2025 um 20:23 schrieb Jonathan S. Katz <jkatz@postgresql.org>:
> This has plagued me for years, and I'm so happy you tracked this down!

I'm happy to hear, I'm not the only one seeing this. Glad to help!


> The patch looks good; have you tested in a few other mail clients? I haven't had a chance to test yet.

I haven't tried other mail clients myself, but as the style definition is just redundant to the img attributes, I
wouldn'texpect any regression by this. But HTML emails are full of miracles ;) 

Litmus.com has become quite expensive for render previews, so I looked for alternatives. I found Testi.at, which offers
somefree tests at least. Unfortunately, I was unable to provide the full MIME structure there and thus could not
simulatethe CID-referenced image that causes the problem in Apple Mail. When I experimented with an externally hosted
image,the result looked good in the provided previews. However, I visually identified another issue: Outlook does not
seemto support the 'float' style attribute [1 footnote 1]. In the v2 patch, I implemented a workaround to duplicate the
'float'style using an 'align' img attribute. Previews of the resulting rendering can be found at [2]. 

Best
Tobias

[1]: <https://www.caniemail.com/search/?s=float>
[2]: <https://testi.at/proj/7oveul95szn3cz5as6>


Вложения

Re: Images in news mails

От
Magnus Hagander
Дата:


On Sun, Sep 7, 2025 at 6:16 PM Tobias Bussmann <t.bussmann@gmx.net> wrote:
Am 05.09.2025 um 20:23 schrieb Jonathan S. Katz <jkatz@postgresql.org>:
> This has plagued me for years, and I'm so happy you tracked this down!

I'm happy to hear, I'm not the only one seeing this. Glad to help!

What's more amazing is that AFAIK this is the first time *anyone* has reported this to be a problem. And it's been this way since 2020...

It is also slightly ironic that it's apple mail that's seeing the problem, given it's quite overrepresented in *generating* broken attachments in similar ways when you look in the archive :)


> The patch looks good; have you tested in a few other mail clients? I haven't had a chance to test yet.

I haven't tried other mail clients myself, but as the style definition is just redundant to the img attributes, I wouldn't expect any regression by this. But HTML emails are full of miracles ;)

Indeed it does. For example, you mentioned the possibility of embedding the image instead of attaching - that *does* break multiple clients, I think at least Outlook and maybe also gmail.



Litmus.com has become quite expensive for render previews, so I looked for alternatives. I found Testi.at, which offers some free tests at least. Unfortunately, I was unable to provide the full MIME structure there and thus could not simulate the CID-referenced image that causes the problem in Apple Mail. When I experimented with an externally hosted image, the result looked good in the provided previews. However, I visually identified another issue: Outlook does not seem to support the 'float' style attribute [1 footnote 1]. In the v2 patch, I implemented a workaround to duplicate the 'float' style using an 'align' img attribute. Previews of the resulting rendering can be found at [2].


PGEU does have a subscription to a service that could be used for testing. We'd need to adapt the test instance of the website for it, but that's fairly easy to do.

I'll also see if I can dig out my old notes for how we ended up in this stricture in the first place, because it did go back and forth a bunch before actually merged.

//Magnus