Función que envia correo con varios archivos adjuntos
soul
soulkiller en teleline.es
Mar Oct 26 17:25:28 CEST 2004
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()
------------ 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