gsmtp - telnet gmail 25
Conectándose a smtp.gmail.com a través de la línea de comando (8)
Estoy en el proceso de escribir una aplicación que envía correo a través de una identificación de usuario y contraseña de GMail válida.
Solo quería simular la conexión SMTP en mi línea de comandos de Windows XP, y cuando telnet smtp.gmail.com
en el puerto 465, no veo nada. Se abre una ventana de comando en blanco con el título Telnet smtp.gmail.com
con el cursor. Cuando EHLO
o los comandos habituales de SMTP Handshake, el mensaje simplemente se cierra.
No puedo entender qué está yendo mal y dónde. Intenté conectarme a 587, no se conecta en telnet en absoluto. ¿Podría alguien aclarar si estoy haciendo algo mal?
Gmail requiere que se encripte la comunicación SMTP con su servidor. Aunque está abriendo una conexión al servidor de Gmail en el puerto 465, desafortunadamente no podrá comunicarse con él en texto llano, ya que Gmail le pedirá que utilice el cifrado STARTTLS / SSL para la conexión.
Jadaaih, puede conectar enviar SMTP a través de CURL - enlace a Curl Developer Community .
Esta es la fuente Curl Email Client .
Verifique esta publicación en lifehacker: Geek to Live: Copia de seguridad de Gmail con fetchmail . Utiliza un programa de línea de comando. Verifique y vea si ayuda. Por cierto, ¿por qué estás usando la línea de comando cuando hay muchas otras buenas alternativas?
Prueba esto:
telnet smtp.gmail.com 587
Usando Linux o OSx, haz lo que Sorin recomienda pero usa el puerto 465 en su lugar. 25 es el puerto SMTP genérico, pero no lo que GMail usa. Además, no creo que quieras usar -starttls smtp
openssl s_client -connect smtp.gmail.com:465
Debería obtener mucha información sobre la sesión SSL y la respuesta:
220 mx.google.com ...
Escribe HELO y recibirás:
250 mx.google.com at your service
A partir de ahí, no es tan sencillo como enviar mensajes SMTP porque Gmail tiene protecciones para garantizar que solo envíe correos electrónicos que aparezcan de cuentas que realmente le pertenecen. En lugar de escribir "Helo", usa "Ehlo". No sé mucho sobre SMTP, así que no puedo explicar la diferencia y no tengo tiempo para investigar mucho. Quizás alguien con más conocimiento pueda explicarlo.
Luego, escribe "auth login" y recibirás lo siguiente:
334 VXNlcm5hbWU6
Esta es esencialmente la palabra "Nombre de usuario" codificada en la Base 64. Usando un codificador de Base 64 como este , codifique su nombre de usuario e ingréselo. Haga lo mismo con su contraseña, que se solicita a continuación. Debería ver:
235 2.7.0 Accepted
Y eso es todo, has iniciado sesión.
Hay una rareza más que superar si está utilizando terminales OSx o Linux. Simplemente presionar la tecla "ENTER" aparentemente no da como resultado un CRLF que SMTP necesita para finalizar un mensaje. Tienes que usar "CTRL + V + ENTER". Entonces, esto debería verse así:
^M
.^M
250 2.0.0 OK
El tcp / 465 se diseñó inicialmente para establecer primero la capa SSL (y la más reciente TLS) y, dentro de ella, hacer un texto sin formato o protocolos antiguos simples (smtp aquí).
tcp / 587 fue pensado como un reemplazo del puerto tcp / 25 predeterminado inicialmente cuando los spammers y los ataques de correo masivo comenzaron hace una década o más, pero también durante esas infames edades de AOL, cuando algún divertido ISP tenía algunos bloques en puertos predeterminados (tales como ese tcp / 25) por negarles a sus propios clientes (AOL) el envío en masa de correos electrónicos / spam en ese momento, pero los clientes de AOL que necesitaban usar cuentas de correo y proveedores de correo alternativos aún necesitaban enviar sus correos de las conexiones de AOL a Internet. , por lo que todavía podrían conectarse a tcp / 587 y hacer smtp simple en él en ese momento.
El trato con la forma de STARTTLS de hacer smtp es usar los dos puertos conocidos de texto sin formato tcp / 25 y tcp / 587, y solo cuando se supera la conexión de texto claro inicial, para luego INICIAR la capa TLS (por lo tanto, STARTTLS) a partir de ahí, teniendo una conexión segura desde ese punto en adelante.
En cuanto a la depuración de este tipo de cosas, tal vez a través de herramientas de línea de comandos, por ejemplo para Windows existe el histórico de comandos de línea blat (smtp), que hasta el día de hoy no puede hacer TLS (STARTTLS) por lo que solo puede usar smtp de texto plano envía sus correos
Luego, hay numerosos proyectos de software libre y de código abierto que tienen más capacidades y características, como
cliente smtp: mailsend @ googlecode http://code.google.com/p/mailsend/
cliente smtp: msmtp @ sourceforge (relacionado con mpop a continuación) http://msmtp.sourceforge.net/
cliente pop3: mpop @ sourceforge http://mpop.sourceforge.net/
Para la terminal OSX '':
openssl s_client -connect smtp.gmail.com:25 -starttls smtp
gmail usa una conexión encriptada. Por lo tanto, incluso después de establecer una conexión, no podrá enviar ningún correo electrónico. El cifrado es un poco complejo de administrar. Intenta usar openssl en su lugar.
El hilo a continuación debería ayudar-
¿Cómo enviar correos electrónicos usando simples comandos SMTP a través de Gmail?