enviar correo con python
omar alberto
omar_alberto_h en yahoo.es
Mie Feb 28 01:33:18 CET 2007
Hola Alatar ,
yo tambien soy novato en esto de python y bueno si me regalaras un sencillo ejemplo de como llamar la funcion def mandar_mail con sus rerspectivos parametros te lo agradeceria
----- Mensaje original ----
De: Alatar <kh_alatar en telefonica.net>
Para: La lista de python en castellano <python-es en aditel.org>
Enviado: martes, 27 de febrero, 2007 18:08:36
Asunto: Re: [Python-es] enviar correo con python
Hola Roylan.
Recientemente he terminado yo un programa para poder mantener un
newslist, te mando mi código que, de momento me funciona perfectamente.
He de decirte que soy novato en Python, pero que voy pillando carrerilla XD
(Digo esto porque si algún experto puede hacerme alguna sugerencia
respecto al código, ésta será bienvenida)
#_________________
def mandar_mail(
pm_servidor_correo,
pm_login_usuario,
pm_login_password,
pm_emisor_nombre,
pm_emisor_correo,
pm_receptor_nombre,
pm_receptor_correo,
pm_asunto,
pm_archivo_texto,
pm_archivo_html,
pm_adjuntos = [],
pm_acuse_recibo = False,
pm_imagenes_embebidas = []):
"""
Rutina para mandar correo electrónico, permitiendo mandar el
mensaje alternativamente en modo texto y html, así como
con archivos adjuntos, imágenes embebidas y pudiendo solicitar
confirmación de lectura.
"""
assert type(pm_adjuntos) == list
assert type(pm_imagenes_embebidas) == list
#Inicializamos el mensaje a mandar y vamos añadiendo partes
msgRaiz = MIMEMultipart('related')
msgRaiz['From'] = pm_emisor_nombre + ' <' + pm_emisor_correo +'>'
msgRaiz['To'] = pm_receptor_correo
msgRaiz['Subject'] = pm_asunto
msgRaiz['Date'] = formatdate(localtime = True)
msgRaiz.preamble = '' #De momento, no lo uso
msgRaiz.epilogue = '' #De momento, no lo uso
if pm_acuse_recibo:
msgRaiz['Disposition-Notification-To'] = pm_emisor_correo
#Se encapsulan las versiones de texto plano y html del cuerpo
#del mensaje en una parte 'alternative' para que el cliente de
#correo decida qué parte mostrar
msgAlternativo = MIMEMultipart('alternative')
msgRaiz.attach(msgAlternativo)
#Abrimos mensaje de texto alternativo y lo añadimos
msgTexto = MIMEText(pm_archivo_texto, 'plain', pm_encoding_cuerpo)
msgAlternativo.attach(msgTexto)
#Abrimos mensaje html alternativo y lo añadimos
msgHtml = MIMEText(pm_archivo_html, 'html', pm_encoding_cuerpo)
msgAlternativo.attach(msgHtml)
#Añadimos las imágenes embebidas
for imagen in pm_imagenes_embebidas:
#Cargar imagen
archivo_imagen = open(imagen, 'rb')
msgImage = MIMEImage(archivo_imagen.read())
archivo_imagen.close()
#Hemos de adjuntar la imagen en el content-id.
#En el archivo html se debe hacer referencia al content-id
#como fuente en el source de la imagen, por ejemplo:
#<img src="cid:/nombre/de_la_ruta_entera/imagen.jpg">
msgImage.add_header('Content-ID', '<' + imagen + '>')
msgRaiz.attach(msgImage)
#Añadimos los ficheros adjuntos a mandar
for file in pm_adjuntos:
adjunto = MIMEBase('application', "octet-stream")
adjunto.set_payload(open(file, "rb").read())
Encoders.encode_base64(adjunto)
adjunto.add_header('Content-Disposition', 'attachment; filename
= "%s"' % os.path.basename(file))
msgRaiz.attach(adjunto)
#Conectamos con el servidor de correo y mandamos el mensaje
servidor = smtplib.SMTP(pm_servidor_correo)
#servidor.set_debuglevel(1)
servidor.ehlo()
servidor.login(pm_login_usuario, pm_login_password)
try:
servidor.sendmail(pm_emisor_correo, pm_receptor_correo,
msgRaiz.as_string())
servidor.quit()
resultado = k_ok
except:
resultado = k_error
return resultado
--------------------------------------------------------------------------
Espero que te sea de ayuda,
Alatar ;)
-------------------------------------------------------------------------------------
Roylan Suarez Reyes escribió:
> hola colegas
>
> Estoy intentando desarrollar en mi aplicacion un modulo para enviar un
> correo, pero resulta que cuando el correo llega el destinatario llega sin
> asunto, sin fecha, y estas cabeceras son importantes, aqui como lo hice:
>
> from smtplib import SMTP
> import config
>
> def EnviarCorreo():
> "Funcion que envia un correo electronico"
> servidor = SMTP(config.HOSTNAME)
> remitente= config.HOSTNAME
> destinatario= config.EMAIL_ADMIN
> mensaje = 'From: %s\nTo: %s\n\n' %(remitente, destinatario)
> mensaje += 'CheckTraz: Acceso a sitio prohibido...\n'
> mensaje += 'ha ocurrido un acceso a sitio prohibido, revise el siguiente
> enlace:\n'
>
> servidor.sendmail(remitente, destinatario, mensaje)
>
> EnviarCorreo()
>
>
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
Más información sobre la lista de distribución Python-es