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