在 MIME 多部分消息中明确指定边界?

Explicitly specifying the boundary in MIME multipart messages?

我知道如何使用 python3 的 email.mime.multipart.MIMEMultipart class 创建各种多部分电子邮件。

我需要通过采用 body(其中包含各种 MIME 部分)对某些现有的多部分消息执行 "email surgery",并在不更改其余部分的情况下删除和添加一些新部分电子邮件的 headers。在 header 中,有以下示例 header:

Content-Type: multipart/mixed;
        boundary="ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"

...其中 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 边界用于分隔现有消息部分。

我想使用 email.mime.multipart.MIMEMultipart 工具创建一个带有修改部分的新 body,并且我想在这些部分之间使用相同的 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 边界,这样我就不会'必须返回并更改消息原始 header 中已经存在的 Content-Type header。

如果我可以指定创建此多部分时要使用的边界的确切文本,那将是理想的 body,但在 python3 中,似乎 email.mime.multipart.MIMEMultipart 包总是创建自己的、随机生成的边界字符串。

在 python3 中,有什么方法可以告诉 email.mime.multipart.MIMEMultipart 软件使用我提供的边界字符串吗?

如果不是,我可以通过获取新生成的消息 body、提取其新的边界字符串(我将其称为 "newboundary",然后将其替换为原始边界来解决此问题(我称之为"originalboundary"),如下:

msgbodytext = msgbodytext.replace(newboundary, originalboundary)

但如果可能的话,我不想这样做。

关于如何告诉 email.mime.multipart.MIMEMultipart 使用我指定的边界字符串有什么想法吗?谢谢。

原来是看错了文档,现在重新看了一下,发现其实很简单。

要将我自己的边界设置为 originalboundary 变量的值,我只需要这样做:

msg = email.mime.multipart.MIMEMultipart(boundary=originalboundary)