Cómo verificar si smtp funciona desde la línea de comandos (Linux) [cerrado]

128

Tengo un servidor SMTP, para el propósito de esta pregunta vamos a llamarlo: smtp.mydomain.com.

¿Cómo verifico si el servidor SMTP está funcionando? ¿Puedo enviar correos electrónicos manualmente desde la línea de comandos de Linux?

balanv
fuente
@Flexo ¿No deberían migrarse tales preguntas en lugar de cerrarse? Parece que pertenece a Serverfault
Balmipour
1
Las preguntas antiguas de @Balmipour no se pueden migrar, ni siquiera por parte de los moderadores. Hay buenas razones para esto discutido en meta.stackexchange.com (no tengo un enlace a mano en este momento), pero tenga en cuenta que la pregunta no se elimina.
Flexo
Después de revisar varias publicaciones en Meta, parece que (para mí) la migración "solo" debe reabrirse primero. Tal vez esto no sea posible con viejas preguntas, por cierto. Supongo que lo sabes mejor que yo. De todos modos, gracias por tu respuesta. Un punto más relevante que he leído en las publicaciones meta es que la migración parece requerir una pregunta "particularmente valiosa". No es que este sea inútil, pero tampoco es una joya. No entiendo mucho, ya que SO está sobrevalorado en otros sitios como ServerFault / Linux o Superuser, pero mantendré el debate por otro día (y pertenece a Meta de todos modos, no SO :)
Balmipour

Respuestas:

175

La sintaxis para establecer una conexión de red sin procesar usando telnet es la siguiente:

telnet {domain_name} {port_number}

Entonces telnet a su servidor smtp como

telnet smtp.mydomain.com 25

Y copia y pega el siguiente

helo client.mydomain.com
mail from:<[email protected]>
rcpt to:<[email protected]>
data
From: [email protected]
Subject: test mail from command line

this is test number 1
sent from linux box
.
quit

Nota: No olvide el "." al final que representa el final del mensaje. La línea "salir" termina la sesión.

balanv
fuente
66
Debe esperar la respuesta de los servidores a cada comando y abortar si obtiene un error (código de resultado 4xx o 5xx).
tripleee
18
En lugar de hello velanapps.comhacerlo, debe escribir helo velanapps.comy si desea saber qué extensiones smtp están disponibles, debe escribir ehlo velanapps.com, como en el Ejemplo SMTP
jgrocha,
44
puede salir escribiendo quit
rhand
2
Esta respuesta fue útil, sin embargo, omití la primera línea en mis pruebas. Todavía recibí correos electrónicos del servidor smtp. Sería útil si pudiera incluir un poco sobre lo que el dominio velanapps.com está haciendo aquí. Siempre soy cauteloso cuando veo un dominio utilizado para algo así sin ninguna explicación de lo que está haciendo con nuestros datos. Gracias.
Jeremy
2
Su @Jeremy sólo una muestra de datos, he eliminado y añadido marcador de posición ...
balanv
26

Lo único sobre el uso de telnet para probar postfix u otro SMTP es que debe conocer los comandos y la sintaxis. En cambio, solo usa swaks :)

thufir@dur:~$ 
thufir@dur:~$ mail -f Maildir
"/home/thufir/Maildir": 4 messages
>    1 [email protected]                   15/553   test Mon, 30 Dec 2013 10:15:12 -0800
     2 [email protected]                   15/581   test Mon, 30 Dec 2013 10:15:55 -0800
     3 [email protected]                   15/581   test Mon, 30 Dec 2013 10:29:57 -0800
     4 [email protected]                   15/581   test Mon, 30 Dec 2013 11:54:16 -0800
? q
Held 4 messages in /home/thufir/Maildir
thufir@dur:~$ 
thufir@dur:~$ swaks --to [email protected]
=== Trying dur.bounceme.net:25...
=== Connected to dur.bounceme.net.
<-  220 dur.bounceme.net ESMTP Postfix (Ubuntu)
 -> EHLO dur.bounceme.net
<-  250-dur.bounceme.net
<-  250-PIPELINING
<-  250-SIZE 10240000
<-  250-VRFY
<-  250-ETRN
<-  250-STARTTLS
<-  250-ENHANCEDSTATUSCODES
<-  250-8BITMIME
<-  250 DSN
 -> MAIL FROM:<[email protected]>
<-  250 2.1.0 Ok
 -> RCPT TO:<[email protected]>
<-  250 2.1.5 Ok
 -> DATA
<-  354 End data with <CR><LF>.<CR><LF>
 -> Date: Mon, 30 Dec 2013 14:33:17 -0800
 -> To: [email protected]
 -> From: [email protected]
 -> Subject: test Mon, 30 Dec 2013 14:33:17 -0800
 -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 -> 
 -> This is a test mailing
 -> 
 -> .
<-  250 2.0.0 Ok: queued as 52D162C3EFF
 -> QUIT
<-  221 2.0.0 Bye
=== Connection closed with remote host.
thufir@dur:~$ 
thufir@dur:~$ mail -f Maildir
"/home/thufir/Maildir": 5 messages 1 new
     1 [email protected]                   15/553   test Mon, 30 Dec 2013 10:15:12 -0800
     2 [email protected]                   15/581   test Mon, 30 Dec 2013 10:15:55 -0800
     3 [email protected]                   15/581   test Mon, 30 Dec 2013 10:29:57 -0800
     4 [email protected]                   15/581   test Mon, 30 Dec 2013 11:54:16 -0800
>N   5 [email protected]                   15/581   test Mon, 30 Dec 2013 14:33:17 -0800
? 5
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from dur.bounceme.net (localhost [127.0.0.1])
    by dur.bounceme.net (Postfix) with ESMTP id 52D162C3EFF
    for <[email protected]>; Mon, 30 Dec 2013 14:33:17 -0800 (PST)
Date: Mon, 30 Dec 2013 14:33:17 -0800
To: [email protected]
From: [email protected]
Subject: test Mon, 30 Dec 2013 14:33:17 -0800
X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
Message-Id: <[email protected]>

This is a test mailing

New mail has arrived.
? q
Held 5 messages in /home/thufir/Maildir
thufir@dur:~$ 

Es solo un comando fácil.

Thufir
fuente
2
No sabía sobre swaks. ¡Gracias!
Peter Loron
17
[root@piwik-dev tmp]# mail -v root@localhost
Subject: Test
Hello world
Cc:  <Ctrl+D>

root@localhost... Connecting to [127.0.0.1] via relay...
220 piwik-dev.example.com ESMTP Sendmail 8.13.8/8.13.8; Thu, 23 Aug 2012 10:49:40 -0400
>>> EHLO piwik-dev.example.com
250-piwik-dev.example.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From:<[email protected]> SIZE=46
250 2.1.0 <[email protected]>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
250 2.1.5 <[email protected]>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 q7NEneju002633 Message accepted for delivery
root@localhost... Sent (q7NEneju002633 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 piwik-dev.example.com closing connection
Satish
fuente
2

No estoy seguro de si esto ayuda o no, pero esta es una herramienta de línea de comandos que le permite simplemente enviar correos de prueba desde un servidor SMTP de forma periódica. http://code.google.com/p/woodpecker-tester/

ehsun7b
fuente