Función que envia correo con varios archivos adjuntos
Ernesto Revilla
erny en sicem.biz
Mar Oct 26 18:42:47 CEST 2004
Hola,
había escrito hace tiempo una función similiar que lo puse en mis
recetas Python:
http://www.sicem.biz/personal/erny/python/Recetas/recetaEnviarMailConAttachments
Te agradecería que lo comparase y me comentes cualquier mejora que tiene
tu función.
Por cierto, hay una librería para resolver entradas DNS de tipo MX
(originalmente del mismo Guido) que siempre viene bien para tener a
mano, si no usas un smarthost (estoy tan quemado de los proveedores de
Internet!!!!):
http://pydns.sourceforge.net/
Saludos,
Erny
soul escribió:
>He estado estos días recopilando información para crear un función para
>el envío de mail con varios adjuntos. Pues esto es lo que he sacado,
>espero que os sirva y ya sabéis, cualquier mejora que se introduzca
>posteadla en la lista.
>
>Saludos
>Soul
>
>import smtplib, sys, MimeWriter, StringIO, base64, mimetypes
>
>def
>sendMail(server='localhost',emisor='',receptor='',asunto='asunto',contenido=None,contenidoHTML=None,ficheros=None):
>
>
> server=smtplib.SMTP(server)
> #server.set_debuglevel(1)
> #Creamos el mensaje por partes
> message = StringIO.StringIO()
> writer = MimeWriter.MimeWriter (message)
> #Añadimos la cabecera del asunto
> writer.addheader ('Subject',asunto)
> writer.startmultipartbody ('mixed')
>
> #Añadimos el cuerpo del email
> if contenido != None:
> part = writer.nextpart()
> body = part.startbody('text/plain')
> body.write(contenido)
> #Añadimos el cuerpo del email en HTML
> if contenidoHTML != None:
> part = writer.nextpart()
> body = part.startbody('text/html')
> body.write(contenidoHTML)
>
> #Añadimos los adjuntos que se indican en la lista ficheros
> #Los ficheros debe tener rutas absolutas, creo :-P
> #la variable ficheros es un lista con las rutas absolutas de los
> #ficheros a adjuntar
> for f in ficheros:
> part = writer.nextpart()
> part.addheader ('Content-Transfer-Encoding' , 'base64')
> part.addheader ("Content-Disposition" , 'atachment;filename='+f)
> #Obtenemos el mime del fichero
> mimetype=mimetypes.guess_type(f)[0] or 'application/octet-stream'
> body = part.startbody (mimetype , [(f,f)])
> body.write(base64.encode(open(f,'rb'), body))
>
>
> #Terminamos el mensaje por partes
> writer.lastpart ()
>
> server.sendmail (emisor, receptor, message.getvalue())
> server.quit()
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Python-es mailing list
>Python-es en aditel.org
>http://listas.aditel.org/listinfo/python-es
>
>
---
avast! Antivirus: Saliente mensaje limpio.
Base de datos de Virus (VPS): 0443-2, 21/10/2004
Comprobado en: 26/10/2004 18:42:49
avast! tiene los derechos reservados (c) 2000-2004 ALWIL Software.
http://www.avast.com
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es