我正在开发自己的电子邮件客户端(由 Django 1.10 和 Python 3 提供支持)。目前,我正在尝试使用 python 的IMAPClient库呈现收件箱消息。看起来我成功地解析了带有mixed
和alternative
子类型的电子邮件,但现在我被困在试图用 subtype 渲染身体的某些部分relative
。也就是说,包含带有嵌入inline
附件的 HTML 的部分。
目前,我将使用相应的fetch
命令将所有内联图像一一下载到我的服务器,然后在目标字母的 HTML 中插入这些图像上的链接。
为了说明,假设电子邮件 HTML 表示包含一个内联图像:
...<td><img src="cid:part1.06030702.04060203@studinter.ru"></td>...
...并且bodystruture
包含内联图像描述的部分如下所示:
(b'IMAGE', b'JPEG', (b'NAME', b'ban1.jpg'), b'<part1.06030702.04060203@studinter.ru>', None, b'BASE64', 15400, None, (b'INLINE', (b'FILENAME', b'ban1.jpg')), None)
因此,理论上,我可以在我的服务器上下载图像,并将src
标签的值(即cid:part1.06030702.04060203@studinter.ru
)替换为我服务器上图像的 url。
我在这里担心的是,将内联附件插入目标 HTML 消息正文的过程是IMAPClient或 python 的电子邮件包之类的库已经实现的,以及我是否要重新发明自行车。我完全迷失在这个话题中。
问题是,我真的必须自己实施吗?如果是,所描述的方法是否合适?如果没有,我将非常感谢有关如何使用 IMAPClient 或标准库的 imaplib 执行此操作的提示。