esti...@s: Hace un tiempo que quiero solucionar un problema que tengo al pasarle una imagen a MIMEImage utilizando PIL, me explico:
Debo enviar un correo electrónico adjuntando una imagen, para esto hago lo siguiente: 1.- Construyo la imagen utilizando: define foo(): boleta_img = Image.open('archivo_de_plantilla.png') boleta_draw = ImageDraw.Draw(boleta_img) ... luego manipulo boleta_draw para llenar con información la imagen .... return boleta_img 2.- Envío el correo mensaje = MIMEMultipart() ... boleta_archivo = foo() boleta_archivo.save('archivo.png',"PNG") boleta = MIMEImage(open('archivo.png','rb').read()) ... se envía el mail utilizando smtplib Como pueden ver tengo en la memoria la imagen que me retorna la función foo pero no se la puedo enviar a MIMEImage sin guardarla antes (si! quiero optimizar esa parte, más bien no realizar esos pasos). Lo que he intentado utilizar es el método tostring() de pil y para enviarle la imagen al constructor de MIMEImage para lo que me llega es pura basura como imagen adjunta, algo debo estar pasando por alto que no logro hacerlo funcionar...de la documentación: PIL: === tostring im.tostring() => string Returns a string containing pixel data, using the standard "raw" encode MIMEImage: ========== __init__(self, _imagedata, _subtype=None, _encoder=<function encode_base64>, **_params) Create an image/* type MIME document. _imagedata is a string containing the raw image data. If this data can be decoded by the standard Python `imghdr' module, then the subtype will be automatically included in the Content-Type header. Otherwise, you can specify the specific image subtype via the _subtype parameter. Gracias por vuestra ayuda, saludos -- Milton Inostroza Aguilera _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/