明确指定MIME多部分邮件中的边界?

时间:2017-12-01 00:31:32

标签: python-3.x mime multipart

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

我需要通过获取正文(包含各种MIME部分)对某些现有的多部分邮件进行“电子邮件外科手术”,并删除和添加一些新部分而不更改其余的电子邮件标题。在标题中,有以下示例标题:

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

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

我想使用email.mime.multipart.MIMEMultipart工具创建一个带有修改部分的新主体,我想在这些部分之间使用相同的ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ边界,这样我就不必回去了并更改邮件原始标题中已存在的Content-Type标题。

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

在python3中,有没有办法告诉email.mime.multipart.MIMEMultipart软件使用我提供的边界字符串?

如果没有,我可以通过获取新生成的消息体,提取其新的边界字符串(我将其称为“newboundary”,然后将其替换为原始边界(我将其称为“originalboundary”)来解决此问题。 “),如下:

msgbodytext = msgbodytext.replace(newboundary, originalboundary)

但如果可能,我宁愿不这样做。

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

1 个答案:

答案 0 :(得分:0)

我最初误读了文档,现在我重读了它们,我发现这很简单。

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

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