如何在Python中生成带有正确CRLF的multipart/mime消息?
我需要生成一个多部分的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 个回答
2
那我们来看看一个简单的解决办法
message.as_string().replace('\n', '\r\n')
虽然这个方法不太优雅,但应该能奏效(同时也应该在Python的反馈系统上提交一个bug报告)。
3
这是Python中的一个错误,现在已经修复了:http://hg.python.org/lookup/r85811
现在应该可以在非邮件的传输方式上使用MIME库,并且会有合理的结果发生。