Mail con Python

Iniciado por SirLanceCC, 22 Julio 2006, 09:13 AM

0 Miembros y 1 Visitante están viendo este tema.

SirLanceCC

Bueno... aqui les trataré de explicar mas o menos como podemos enviar un e-mail desde Pyhton, haciendo que nuestra pc trabaje como servidor SMTP...


#Importamos la libreria de funciones smtp
from smtplib import *

#creamos una clase smtp, en otras palabras definimos el server
server = SMTP('smtp.mail.yahoo.com')
# esto es para yahoo... antes funcionaba...

#nos identificamos con nuestro nombre y contraseñas usuales
server.login('mi_cuenta','mi_password')

#escribimos el mensaje con las cabeceras...
mensaje = '''From: Sir_Lance <remitente@yahoo.com>
To: destinatario@hotmail.com
Subject: Saludando vía SMTP
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1

Hola amigo... te saludo vía SMTP desde mi pc'''

#finalmente enviamos
server.sendmail('remitente@yahoo.com', 'destinatario@hotmail.com', mensaje)

#cerramos la conexión
server.quit()


Ahi esta... solo cambien las direcciones y todo estará listo.

PD: para activar el smtp de yahoo antes era gratis... pero al parecer ahora hay que contratar Y!Plus... es posible que se niegue el acceso :(. Se puede enviar texto en formato html sólo cambia text/plain por text/html. Creo que es todo... dudas, comentario... proximamente como leer tu correo con Python ;)

ADVERTENCIAS: Lo enviado por este script puede llegar a ser spam. Es responsable el usuario final...

---------------------

Ahora veremos como leer nuestro correo mediante POP3

#Importamos lasfunciones pop3
from poplib import *

#definimos cual será nuestro seridor de correo
server= POP3('pop.mail.yahoo.com')

#obviamente necesitaremos hacer login
server.user('mi_usuario')
server.pass_('mi_password')


En este punto tendremos una conexión activa al servidor... si es que nos lo permite e introducimos bien la contraseña, etc...

Ahora podemos hacer diversas acciones:

#ver el estado de nuestro buzón
server.stat()
#nos devolverá los mensajes en buzón leidos o no leidos y el espacio que hemos ocupado en el buzón.

server.list()
#hace casi lo mismo que el anterrior pero ademas nos devuelve el peso de cada uno de los mensajes en el buzón

server.list(1)
#devolverá el peso del ultimo mesaje recibido en el buzón

server.retr(1)
#devolverá el contenido completo del mensaje en un array donde cada elemento representa una línea.

server.top(1,0)
#devolverá el contenido de las cabeceras del mensaje, más tantas lineas del cuerpo del mensaje como se especifiquen (en este caso 0)

server.dele(1)
#eliminará el mensaje especificado
#las eliminaciones se hacen al cerrar la conexión y pueden ser canceladas

server.rset()
#no eliminará ningun correo a menos que se especifiquen nuevos

#finalmente salimos del server
server.quit()


Listo!!! lo basico acerca del e-mail con python.
Espero que les sea útil y que quede claro... si no me pueden preguntar para que aclara las cosas

Division-x


s1d4rt4

#2
cuando prueba con el smpt de gmail aparece esto

raise SMTPException("SMTP AUTH extension not supported by server.")
SMTPException: SMTP AUTH extension not supported by server.

problemas del servidor?

SirLanceCC

Citarproblemas del servidor?
Si verás... algunos servidores no permiten el acceso via smtp... justamente por el problema del spam y los porblemas legales que podría traerles...

CitarSMTP AUTH extension not supported by server.
Ahi especificamente parece no soportar autentificacion (login)
Espero no estar equivocado  :-\

SirLanceCC

Ya está! como acceder a  nuestro buzón con pop3 y por tal... leer nuestro correo  ;D

(aver si me gano una chincheta  :rolleyes:)

Division-x

Cita de: -| Sir_Lance |- en 23 Julio 2006, 14:50 PM
(aver si me gano una chincheta  :rolleyes:)

te la mereces, o por lo menos un link en el post recopilatorio ;) ;) ;) ;)

Ragnarok

¿Seguro que así conseguimos que "nuestra pc trabaje como servidor SMTP"?

Yo diría que el que hace el trabajo es el servidor SMTP de yahoo, o el que decidas usar.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

SirLanceCC

Citar
¿Seguro que así conseguimos que "nuestra pc trabaje como servidor SMTP"?

Bueno, no soy un teorico purista... supongo que tienes razón en parte... pero si revisas las cabeecras del mensaje que envies... te aperecerá por ahi el nombre de tu pc y tu ip...

de todos modos repito que no soy purista y perdonen si dije algo mal  :P

sirdarckcat

Te agrego en el de recopilatorio. :P

Saludos!!

Azielito

pues para evitar problemas puedes ahcer un form con python y las direcciones enviarlas al localhost con algun servidor SMTP que andan por la red :D

yo uso con PHP el "Local SMTP Relay Server" y me va de maravilla :D