El primer problema que nos encontramos es que un cliente telnet corriente y moliente no soporta SSL, además el nombre de usuario y el password se deben enviar codificados en base64, pero no os preocupeis porque con la ayuda de un pequeño script de cosecha propia todo será resuelto de forma muy comoda.
Para realizar conversiones a base64 emplearé un script pero esta vez será en Python, la salida del script será emplazada en /tmp/base64
Para resolver el problema de SSL vamos a instalar la aplicación stunnel:
apt-get install stunnel
- Ahora creamos el tunel SSL que escuchará en el puerto 25 local:
stunnel -d 25 -cr smtp.gmail.com:465
La -c significa modo cliente y la -r servicio remoto
La -c significa modo cliente y la -r servicio remoto
- Ahora basta conectar con nuestro host y seremos redireccionados a smtp.gmail.com:465 pero por el tunel SSL:
El servidor debe de responder tal que así:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mx.google.com ESMTP 28sm4369646eye.7
- Ahora seremos educados y saludaremos al servidor:
Nos responderá:
250-mx.google.com at your service, [89.131.206.8]
250-SIZE 35651584
250-8BITMIME
250-AUTH LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250 PIPELINING
- Elegimos modo de autentificarnos:
Responderá:
334 VXNlcm5hbWU6
- Ahora debemos indicarle el nombre de usuario en base 64:
Responderá:
334 UGFzc3dvcmQ6
- Ahora debemos indicarle el password en base 64:
Responderá:
235 2.7.0 Accepted
- Indicamos el origen:
Responderá:
250 2.1.0 OK 28sm4369646eye.7
- Indicamos el destino:
Responderá:
250 2.1.5 OK 28sm4369646eye.7
- Empezamos con el mensaje:
Responderá:
354 Go ahead 28sm4369646eye.7
- Indicamos el motivo:
- Escribimos el mensaje:
- Acabamos el mensaje:
Responderá:
250 2.0.0 OK 1263726572 28sm4369646eye.7
- Salimos:
Responderá:
221 2.0.0 closing connection 28sm4369646eye.7
Connection closed by foreign host.
Con el Script será mucho mas sencillo, recordad colocar los dos Scripts tanto el de Python como el de Bash en el mismo directorio o no funcionará.
PD: Yo de vosotros le hecharía un ojo a los Scripts ya es necesario meter el password de vuestras cuentas de correo!!!
Para otros servidores de correo se puede modificar de forma fácil el script.
8 comentarios:
Me ha gustado mucho tu blog, me guardo el link para echarle un vistazo mas pausado.
Gracias
Muchas gracias, saber que hay gente a la que le gusta lo que escribo siempre anima ;)
=( hola he estado intentando conectarme por telnet con gmail y sin tunel me pasaba q no aparecia ningun metodo de auth con el tunel me sale pero auth cram-md5 y el digest
no emsale el auth login
si me puedes ayudar e buscardo e intendao logearme con el auth cram pero no se q responderle pues me responde
leonardo@leonardo-desktop:~$ stunnel -d 25 -cr smtp.gmail.com:25
leonardo@leonardo-desktop:~$ telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 leonardo-desktop ESMTP Sendmail 8.14.3/8.14.3/Debian-9.1ubuntu1; Tue, 16 Nov 2010 17:54:05 -0300; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
ehlo gmail.com
250-leonardo-desktop Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
AUTH CRAM-MD5
334 PDgxNTE5NjQ1Ny4xNDg3MjUzNEBsZW9uYXJkby1kZXNrdG9wPg==
Y AI NO SE Q RESPONDERLE PROBE CON MI usea y pass en base 64 separados de un guion y tb por seprado pero no pasa nada me falla si me puedes ayudar te agradeceria
amigo te agradeceria mucho si me respondieras esto mira... ago lo mismo que tu:
C:\Documents and Settings\Administrador>telnet smtp.gmail.com 587
220 mx.google.com ESMTP s12sm5205409anh.2
ehlo
250-mx.google.com at your service, [201.240.65.174]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
auth login
530 5.7.0 Must issue a STARTTLS command first. s12sm5205409anh.2//ESTE ES EL ERROR!!!
que puede ser e desactivado el firewall y el antivirus no me explico que mas ni el router impide nada... te agradesco de antemano tu respuesta...
puede ser el ssl pero como lo resuelvo en windows????
como mola... solo añadir un detalle. con stunnel si abres un puerto inferior a 1024, lo tienes que hacer como superusuario.
Publicar un comentario