多部分/混合电子邮件附件未显示,但仅在Windows 10 Mai中显示

2024-04-25 13:43:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过Python发送的电子邮件有一个奇怪的问题email/smtplib。在

我试图用以下内容撰写电子邮件:

  • 纯文本和HTML消息体的替代品
  • 嵌入HTML正文中的图像
  • 单独的非内联附件

MIME结构的设置如下:

multipart/mixed
    multipart/alternative
        text/plain
        multipart/related
            text/html
            image/png - inline
    application/pdf - attachment

这似乎在我测试过的每一个邮件客户端上都能很好地工作{BlueMail on Android,iOS mail client,Roundcube},除了windows10邮件客户端。出于某种原因,windows10内置的邮件客户端似乎可以很好地显示内联图像,但没有显示其他附件的踪迹。在

我在互联网上找到的有限信息表明,这是Windows 10邮件客户端的一个缺陷,但我个人在这个客户端收到了其他电子邮件,其中包括内联附件和附加附件,它们显示得很好,因此显然有某种解决方法/替代消息结构。在

因此,我的问题是:如何以不同的方式格式化此邮件,以便它能在所有相关的邮件客户端中正确显示?

我用Python编写电子邮件如下:

^{pr2}$

更新:这是来自Windows 10 mail的邮件数据(作为通过“保存”功能的输出-无法查看我可以找到的原始邮件原始数据…)

MIME-Version: 1.0
Date: Thu, 30 May 2019 17:45:28 +0200
From: xxxxx <xxxxx>
Subject: xxxxx
Thread-Topic: xxxxx
To: "xxxxx" <xxxxx>
Content-Type: multipart/related;
    boundary="_5D6C043C-FD42-42F9-B0E0-841DBFBA96D5_"

--_5D6C043C-FD42-42F9-B0E0-841DBFBA96D5_
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="utf-8"

<center><img src=3D"cid:embedded-image" alt=...

--_5D6C043C-FD42-42F9-B0E0-841DBFBA96D5_
Content-Type: image/png; name="embedded-image.png"
Content-ID: <embedded-image>
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="embedded-image.png"

iVBORw0KGgoAAAAN...

--_5D6C043C-FD42-42F9-B0E0-841DBFBA96D5_--

我不确定这是否是从应用程序中保存电子邮件的结果,或者这是应用程序实际存储的内容,但似乎Windows 10邮件应用程序删除了multipart/related节之外的所有内容—也就是说,它只接收选定的alternative,而不存储任何其他内容。在

为了进行比较,我找到并导出了一封显示正确的电子邮件,其中包括图像、html和附件,但格式似乎要简单得多——电子邮件仅由一个multipart/mixed层和一个text/html附件组成。那封电子邮件使用了HTML中引用的外部图像,而不是将其嵌入到邮件中—我希望避免在每个外部电子邮件中托管图像。在


Tags: text图像image客户端附件png电子邮件html
1条回答
网友
1楼 · 发布于 2024-04-25 13:43:07

{I>不像cd1>在显示附件时有问题。在

不幸的是,正确地处理MIME消息中的非标准方法是一个需要良好的电子邮件客户端的特性。显然,Windows10Mail还不够“好”。在

我建议您使用的结构是:

multipart/mixed
├─── multipart/related
│   ├─── multipart/alternative
│   │   ├─── text/plain
│   │   └─── text/html
│   └─── image/png - inline image
└─── application/pdf - attachment

我对以下客户的这种结构没有任何问题。在

  • Windows 10邮件
  • Gmail Web和Android
  • Outlook Web和Android及Windows桌面
  • Blue Mail安卓
  • Roundcube Web
  • 邮件启用网站

所以,请尝试下面的代码看看它是否适合您。在

^{pr2}$

相关问题 更多 >