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