2011-06-15 21 views
9

Esto tal vez una pregunta repetida, pero todavía estoy enfrentando problemas con esto, espero que haya una solución. Gracias por adelantado.Extensión STARTTLS no admitida por el servidor

Estoy intentando enviar correo a través del servidor de la compañía

actualmente estoy usando Python versión 2.6 y Ubuntu 10.04

Este es el mensaje de error llegué

Traceback (most recent call last): 

    File "hxmass-mail-edit.py", line 227, in <module> 
    server.starttls() 

    File "/usr/lib/python2.6/smtplib.py", line 611, in starttls 
    raise SMTPException("STARTTLS extension not supported by server.") smtplib.SMTPException: STARTTLS extension not supported by server. 

Aquí va parte del código

server = smtplib.SMTP('smtp.abc.com', 587) 
server.set_debuglevel(1) 
server.ehlo() 
server.starttls() 
server.ehlo() 
server.login('[email protected]', 'abc123') 
addressbook=sys.argv[1] 
+0

Por favor, después el fragmento de código que envía su correo. tal vez es suficiente para eliminar "server.starttls()", pero es difícil de decir sin el código – Gryphius

Respuesta

0

El error lo dice todo, parece que el SMT El servidor de P sou está usando no es compatible con STARTTLS y usted está emitiendo server.starttls(). Intente usar el servidor sin llamar al server.starttls().

Sin más información es lo único que puedo decir.

+0

gracias ferran, he intentado no usar server.starttls(), parece que no funcionó bien al devolver una lista de errores. – XXX

0

¿Está seguro de que desea encriptar (StartTLS) la conexión al servidor de correo? Me pondría en contacto con alguien que conoce el interior de ese servidor para ver qué protocolo/encriptación usar.

Usted dice que al eliminar la llamada al server.starttls(), obtiene una serie diferente de mensajes de error. ¿Podrías por favor publicar esos mensajes también?

Además, es posible que desee leer en StartTLS para que comprenda de qué se trata y por qué querría usarlo. Parece que estás escribiendo un programa Serious Business, en cuyo caso probablemente quieras entender lo que estás haciendo, en cuanto a seguridad.

6

Quite ehlo() antes de starttls().

starttls() + ehlo() da como resultado dos mensajes HELLO, que hacen que el servidor elimine el STARTTLS en el mensaje de respuesta.

server = smtplib.SMTP('smtp.abc.com', 587) 
server.starttls() 
server.ehlo() 
server.login('[email protected]', 'abc123') 
+0

Esto no funciona para yahoo. Yahoo funciona solo cuando elimino 'startTLS'. Pero necesito TLS para asegurarme de que los sniffers no capturen la contraseña. – Ajoy

3

eliminación server.ehlo() antes server.starttls() me ayudó a conseguir mi código de trabajo! Gracias, Leonard! mi código:

s = smtplib.SMTP("smtp.gmail.com",587) 
s.starttls() 
s.ehlo 
try: 
    s.login(gmail_user, gmail_psw) 
except SMTPAuthenticationError: 
    print 'SMTPAuthenticationError' 
s.sendmail(gmail_user, to, msg.as_string()) 
s.quit() 
-3

Sí poniendo server.starttls() anterior server.ehlo() resolvieron este.

1

soy capaz de resolver el problema con código de abajo, añadiendo el número de puerto con el nombre del servidor:

server = smtplib.SMTP('smtp.abc.com:587') 
Cuestiones relacionadas