Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2008, 11:17
Keysher
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años, 1 mes
Puntos: 17
Método getreply() de smtplib se queda bloqueado

Buenas,

Estoy iniciandome en esto del python, por motivos de trabajo y, como suele suceder en estos casos, el aprendizaje es a marchas forzadas.

Lo que me interesa es un pequeño script que envíe correos a través de un determinado servidor SMTP (cosa que no parece muy complicada).

Tengo un código tan sencillo como éste:

Código:
#! /usr/bin/python
import smtplib

smtpserver = "192.168.15.150"
sender = "[email protected]"
to  = "[email protected]"
subject = "Asunto"
text = "Texto de prueba"

msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (sender, to, subject)
msg = msg + text
server = smtplib.SMTP(smtpserver)
#server.set_debuglevel(1)
server.sendmail(sender, to, msg)
#(code,msg) = server.getreply()
server.quit()
Y funciona perfecto, envía el correo a la dirección de destino mediante el servidor especificado. El problema es que necesito capturar la respuesta del SMPT. Para ello utilizo el método getreply() (el que está comentado en el código. Sin embargo con esta instrucción el script no termina nunca, cuando lo aborto manualmente me devuelve la siguiente traza:

Código:
Traceback (most recent call last):
  File "mail.py", line 15, in <module>
    server.getreply()
  File "/usr/lib/python2.5/smtplib.py", line 352, in getreply
    line = self.file.readline()
  File "/usr/lib/python2.5/socket.py", line 346, in readline
    data = self._sock.recv(self._rbufsize)
KeyboardInterrupt
¿Estoy haciendo algo mal? Por lo que he podido leer al respecto debería funcionar... He probado con un par de servidores SMTP (ambos en máquinas de la red local en la que estoy) ¿Se me pasa algo por alto?

He buscado un poco, pero ando algo perdidillo y no sé muy bien cómo y dónde buscar información al respecto, en todos los ejemplos que he visto la sintasix es la misma.

Gracias y un saludo.