enviar correo con python

Roylan Suarez Reyes roylan04012 en pri.jovenclub.cu
Mie Feb 28 14:20:38 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
Me sumo ha esto tambien, ayer en poco tiempo trate de hacer correr la
funcion pero me dio un error, no tuve mucho tiempo, hoy lo hare con mas
calma..

salu2
roylan


> ----- 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
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>


-- 
Roylan Suarez Reyes
Admin Redes JCCE Vinales
telef: 793210
roylan04012 en pri.jovenclub.cu




Más información sobre la lista de distribución Python-es