2012-02-09 8 views
13

Este es mi código normal en mi VPS que proporcionan pitón 2,4SMTP AUTH extensión no soportada por el servidor en Python 2.4

def mail(receiver,Message): 
    import smtplib 
    try: 
     s=smtplib.SMTP() 
     s.connect("smtp.gmail.com",465) 
     s.login("[email protected]", "password") 
     s.sendmail("[email protected]", receiver, Message) 
    except Exception,R: 
      return R 

pero, por desgracia, devuelva este mensaje! : SMTP AUTH extension not supported by server.

en mi ordenador el cual he instalar Python 2.7 He encontrado la solución y es un trabajo muy bueno aquí es el código:

def mail(T,M): 
    import smtplib 
    try: 
     s=smtplib.SMTP_SSL() 
     s.connect("smtp.gmail.com",465) 
     s.login("[email protected]","your_password") 
     s.sendmail("[email protected]", T, M) 
    except Exception,R: 
      print R 

Pero en el SPV, que instalado Python 2.4 no tiene SMTP_SSL() y devolver este mensaje 'module' object has no attribute 'SMTP_SSL'

También he intentado actualizar mi python en VPS, pero lo que sucedió es Dañar a toda la python que significa que Python no funciona en absoluto.

Respuesta

15

gracias chicos que he encontrado la solución y esta es la solución =)

def mail(receiver,Message): 
    import smtplib 
    try: 
     s=smtplib.SMTP() 
     s.connect("smtp.gmail.com",465) 
     s.ehlo() 
     s.starttls() 
     s.ehlo() 
     s.login("[email protected]", "password") 
     s.sendmail("[email protected]", receiver, Message) 
    except Exception,R: 
      return R 
+1

usted no se puede ejecutar '' ehlo'' o '' starttls'' antes de '' connection''. Además de no tener ningún sentido, genera una excepción ('' SMTPServerDisconnected''). – emyller

+2

No es necesario que realice la primera llamada s.ehlo(). s.starttls() lo llamará por usted. Confirmé esto en 2.7, el sonido de 2.4 docs parece que se comporta de la misma manera en esa versión. – Ian

+0

Podría valer la pena decir explícitamente que es el doble ehlo() que parece hacer que esto funcione ... –

0

¿Está disponible SMTP.starttls()? También se puede hacer por ejemplo:

def mail(receiver,Message): 
    import smtplib 
    try: 
     s=smtplib.SMTP() 
     s.connect("smtp.gmail.com",587) 
     s.starttls() 
     s.login("[email protected]", "password") 
     s.sendmail("[email protected]", receiver, Message) 
    except Exception,R: 
      return R 
+1

resultado exacto^_^'extensión AUTH SMTP no es compatible con server' – Hamoudaq

Cuestiones relacionadas