Como mandar un email con telnet (protocolo SMTP)
Para provar instalaciones de servidores de correo suele ser útil realizar entregas de prueba “a mano” mediante comandos SMTP. Por ejemplo, en el caso de qmail si limitamos la memoria que puede utilizar qmail-smtpd puede darse el caso que sea suficiente como para arrancarlo pero insuficiente para que reciba correo. Realizando la prueba a mano, conjuntamente con un strace del daemon podemos ver mejor que esta pasando.
Para ello solo hace falta hacer un telnet el servidor de correo en el puerto 25. Para saber cual es el servidor de correo de un dominio en concreto podemos hacerlo mediante dig. Por el caso de gmail sería:
# dig gmail.com mx ; <<>> DiG 9.3.4-P1 <<>> gmail.com mx ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53900 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 4, ADDITIONAL: 4 ;; QUESTION SECTION: ;gmail.com. IN MX ;; ANSWER SECTION: gmail.com. 1842 IN MX 50 gsmtp183.google.com. gmail.com. 1842 IN MX 5 gmail-smtp-in.l.google.com. gmail.com. 1842 IN MX 10 alt1.gmail-smtp-in.l.google.com. gmail.com. 1842 IN MX 10 alt2.gmail-smtp-in.l.google.com. gmail.com. 1842 IN MX 50 gsmtp147.google.com. ;; AUTHORITY SECTION: gmail.com. 204845 IN NS ns4.google.com. gmail.com. 204845 IN NS ns1.google.com. gmail.com. 204845 IN NS ns2.google.com. gmail.com. 204845 IN NS ns3.google.com. ;; ADDITIONAL SECTION: ns1.google.com. 52698 IN A 216.239.32.10 ns2.google.com. 52698 IN A 216.239.34.10 ns3.google.com. 52698 IN A 216.239.36.10 ns4.google.com. 52698 IN A 216.239.38.10 ;; Query time: 1 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Jan 27 09:28:18 2009 ;; MSG SIZE rcvd: 294
Podemos ver los servidores de correo debajo de ANSWER SECTION. A continuación hacemos el telnet:
$ telnet correo.dominio.ejemplo 25
A continuación debemos mandar un HELO con la el nombre del host desde el que conectamos. Este debe ser el nombre completo que ve el servidor: O sea, la inversa de la IP con la que nos conectamos al servidor de correo.
Seguimos mandando la dirección con la que mandamos el correo mediante MAIL FROM. El servidor nos contetará con un 250 ok. A continuación debemos indicar la dirección destino. Esta debe existir en ese servidor sino va a rechazar el mensaje. Lo hacemos con RCPT TO
Finalmente transmitimos los datos con el comando DATA.
En el cuerpo del mensaje (el DATA) podemos especificar tanto el cuerpo como el subject o demás cabezeras. Por ejemplo, el caso del subject sería indicando Subject: seguido del subject deseado.
Para finalizar los datos lo hacemos con un intro un punto y un intro.
La sesión completa sería:
# telnet mail.systemadmin.es 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mail.systemadmin.es ESMTP HELO local.domain.name 250 mail.systemadmin.es MAIL FROM: ejemplo@fakemail.com 250 ok RCPT TO: info@systemadmin.es 250 ok DATA 354 go ahead Subject: email entregado con telnet esto es el cuerpo del mensaje finaliza con un intro un punto i otro intro . 250 ok 1233044313 qp 4027 bye 221 mail.systemadmin.es
Relacionados
Imprimir
Deja un comentario: