在 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)
我知道如何使用 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)