我通过Python发送的电子邮件有一个奇怪的问题email
/smtplib
。在
我试图用以下内容撰写电子邮件:
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中引用的外部图像,而不是将其嵌入到邮件中—我希望避免在每个外部电子邮件中托管图像。在
{I>不像cd1>在显示附件时有问题。在
不幸的是,正确地处理MIME消息中的非标准方法是一个需要良好的电子邮件客户端的特性。显然,Windows10Mail还不够“好”。在
我建议您使用的结构是:
我对以下客户的这种结构没有任何问题。在
所以,请尝试下面的代码看看它是否适合您。在
^{pr2}$相关问题 更多 >
编程相关推荐