python openssl raspberry-pi smtplib raspbian

python - Error de SSL en Raspberry Pi



openssl raspberry-pi (1)

Me encontré con este problema ayer. Lo primero que debe hacer es cambiar la cuenta desde la que desea enviar un correo electrónico a otro proveedor: pruebe gmail, por ejemplo. En mi caso, comenzó a funcionar al instante.

Si también es el caso para usted (¿culpa de Microsoft?), Pruebe otra cosa con la cuenta de Windows Live (similar a la sugerida en el comentario):
openssl s_client -connect smtp.live.com:587 -starttls smtp -crlf -ign_eof

luego escribe:
ehlo
auth login
En mi caso, no pasó nada. Sin respuesta, solo leyó tiempo de espera. Esta vez prueba:
openssl s_client -connect smtp.live.com:587 -starttls smtp -crlf -ign_eof -no_tls1_2
Entonces:
ehlo
auth login
Recibí una respuesta de inmediato. Si sigue siendo tu caso, hay un pequeño problema. No he encontrado ninguna forma de especificar dicho parámetro (qué versiones de tls evitar que se usen). Lo que encontré es que en Python 3.3 puede dar un argumento de contexto adicional en starttls y debería ser capaz de definir algunos parámetros de cifrado en este contexto . La lista de opciones se puede encontrar aquí .
Debo admitir que fue más fácil para mí simplemente usar la cuenta de gmail que obtener Python 3.3 (en rpi tienes 3.2 sin posibilidad de especificar el contexto), ni siquiera estoy seguro de si te ayudará. Sin embargo, espero que esta información te ayude de alguna manera.

Recientemente compré un Raspberry Pi para ejecutar algunos scripts de Python, pero cuando lo porté, la función que escribí para enviar correos electrónicos a través de Windows Live repentinamente comenzó a transmitir un error de SSL después de un exitoso saludo de mano, específicamente:

error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

Después de una extensa búsqueda, encontré muchas personas con el mismo error, pero todas en situaciones muy diferentes. Lo más relevante que pude encontrar fue que parecía ser un problema con una versión específica de OpenSSL, pero no pude encontrar nada sobre la versión que se ejecuta en mi Pi (1.0.1e).

La función (que funciona perfectamente bien en Win7):

def wlive(adr_to, adr_fro, adr_pass, adr_subj, adr_file): saveout = smtplib.stderr logger = open(''wlive.log'', ''w'') smtplib.stderr = logger msg = MIMEMultipart() msg[''Subject''] = adr_subj msg[''From''] = adr_fro msg[''To''] = adr_to if adr_file != None: # subtype recognition based on extension filext = os.path.splitext(adr_file)[1] if filext == ''.png'': subt = ''png'' else: subt = ''jpeg'' fp = open(adr_file, ''rb'') img = MIMEImage(fp.read(), subt) fp.close() msg.attach(img) try: server = smtplib.SMTP(''smtp.live.com'', 587) server.set_debuglevel(1) server.ehlo() server.starttls() server.login(adr_fro, adr_pass) server.sendmail(adr_fro, adr_to, msg.as_string()) server.quit() return True except Exception, e: print ''wlive exception:/n/n'', str(e) return False smtplib.stderr = saveout logger.close()

Estoy ejecutando la imagen Raspbian "Wheezy" completamente actualizada y actualizada, y Python 2.7.3