如何在Python中生成具有正确CRLF的multipart / mime消息?

时间:2010-06-21 17:20:29

标签: python mime

我需要生成一个multipart / mime消息作为对HTTP请求的响应发送,但是在Python email。*包中遇到错误或限制。

问题在于使用Python 2.6,下面的message.as_string()调用会生成一个字符串,其中\ n而不是CRLF作为行结尾:

message = MIMEMultipart()
for image in images:
    f = image.open('rb')
    img = MIMEImage(f.read(), _encoder=encode_7or8bit)
    message.attach(img)


message.as_string()

似乎没有办法说服它使用(MIME标准)CRLF。似乎应该能够执行此操作的Generator类不会。

其他人为了解决这个问题做了什么?

2 个答案:

答案 0 :(得分:3)

这是Python中的一个错误,现已修复:http://hg.python.org/lookup/r85811

现在应该可以使用MIME库而不是非电子邮件传输,并且会发生明智的事情。

答案 1 :(得分:2)

一个简单的黑客

message.as_string().replace('\n', '\r\n')

?不太优雅,但应该工作(并且应该在Python跟踪器中输入错误报告)。