Como verificar se o smtp está funcionando na linha de comando (Linux) [fechado]

128

Eu tenho um servidor SMTP, para o propósito desta pergunta, vamos chamá-lo: smtp.mydomain.com.

Como verifico se o servidor SMTP está funcionando? Posso enviar emails manualmente a partir da linha de comando do Linux?

balanv
fonte
@Flexo Essas perguntas não devem ser migradas e não fechadas? Este parece pertencer ao Serverfault
Balmipour 15/15
1
As perguntas antigas do @Balmipour não podem ser migradas, nem mesmo pelos moderadores. Existem boas razões para isso discutidas no meta.stackexchange.com (não tenho um link disponível no momento), mas observe que a pergunta não foi excluída.
Flexo
Após verificar várias postagens no Meta, parece (para mim) migrar "just" precisa reabrir primeiro. Talvez isso não seja possível com perguntas antigas. Eu acho que você sabe disso melhor do que eu. De qualquer forma, obrigado pela sua resposta. Um ponto mais relevante que li em meta posts foi que a migração parece exigir uma pergunta "particularmente valiosa". Não que este seja inútil, mas também não é uma jóia. Eu não entendo isso muito, uma vez que é superestimada em relação a outros sites como ServerFault / Linux ou superusuário, mas vou manter o debate para outro dia (e ele pertence a Meta de qualquer maneira, não SO :)
Balmipour

Respostas:

175

A sintaxe para estabelecer uma conexão de rede bruta usando telnet é esta:

telnet {domain_name} {port_number}

Então, telnet para o seu servidor SMTP como

telnet smtp.mydomain.com 25

E copie e cole o abaixo

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: Não se esqueça do "." no final, que representa o final da mensagem. A linha "Quit" sai termina a sessão.

balanv
fonte
6
Você deve aguardar a resposta dos servidores para cada comando e abortar se receber um erro (código de resultado 4xx ou 5xx).
Tripleee
18
Em vez de hello velanapps.comvocê deve escrever helo velanapps.come se você quer saber quais as extensões SMTP estão disponíveis, você deve escrever ehlo velanapps.com, como no Exemplo SMTP
jgrocha
4
você pode sair digitando quit
rhand
2
Essa resposta foi útil, porém omiti a primeira linha nos meus testes. Ainda recebo e-mails do servidor smtp. Seria útil se você pudesse incluir um pouco sobre o que o domínio velanapps.com está fazendo aqui. Sempre sou cauteloso quando vejo um domínio usado para algo assim, sem explicação sobre o que está fazendo com nossos dados. Obrigado.
Jeremy
2
@Jeremy É apenas uma amostra de dados, eu ter removido-lo e espaço reservado adicionado ...
balanv
26

A única coisa sobre o uso do telnet para testar o postfix, ou outro SMTP, é que você precisa conhecer os comandos e a sintaxe. Em vez disso, basta usar 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:~$ 

É apenas um comando fácil.

Thufir
fonte
2
Eu não sabia sobre swaks. Obrigado!
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
fonte
2

Não tenho certeza se isso ajuda ou não, mas é uma ferramenta de linha de comando que permite enviar e-mails de teste de um servidor SMTP periodicamente. http://code.google.com/p/woodpecker-tester/

ehsun7b
fonte