1
如何在Python中构建MIME多部分消息?我已经尝试了Python的email
包,但它看起来坏了 - 它不能正确地执行二进制部分(将它们的Content-Transfer-Encoding
设置为base64并将数据保留为二进制文件)。请注意,对于我的应用程序,实际数据是二进制编码非常重要,而不是base64。我需要最小化尺寸。在Python中使用二进制数据编码MIME多部分?
这是我试过的代码。
from email import message, mime, generator, encoders
from email.mime import multipart, text, image
from cStringIO import StringIO
import os
m = multipart.MIMEMultipart("related")
part = text.MIMEText("text", "plain")
part.set_payload("hello")
part.add_header('Content-Disposition', 'asset', name='abc')
m.attach(part)
part = image.MIMEImage("image", "x-other")
part.set_payload(os.urandom(200))
m.attach(part)
fp = StringIO()
g = generator.Generator(fp, mangle_from_ = False, maxheaderlen = 1000)
g.flatten(m)
print(fp.getvalue())
这是行不通的。它只是添加了第二个头文件,并将破碎的'base64'文件保留在原位。 –
@ edA-qamort-ora-y它在Python 2.7.3上适用于我。你注意到了'encoders.encode_noop'吗? –
对不起,我没有看到那部分。是的,我可以得到二进制编码。我担心,因为“二进制”不是一个标准的编码器,也许它不能解码这些消息。 –