Обсуждение: Images in news mails
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>
Вложения
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
Вложения
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>
Вложения
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