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?


@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:<sender@mydomain.com>
rcpt to:<to_email@mydomain.com>
data
From: test@mydomain.com
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.


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 thufir@dur.bouncem                   15/553   test Mon, 30 Dec 2013 10:15:12 -0800
     2 thufir@dur.bouncem                   15/581   test Mon, 30 Dec 2013 10:15:55 -0800
     3 thufir@dur.bouncem                   15/581   test Mon, 30 Dec 2013 10:29:57 -0800
     4 thufir@dur.bouncem                   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 thufir@dur.bounceme.net
=== 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:<thufir@dur.bounceme.net>
<-  250 2.1.0 Ok
 -> RCPT TO:<thufir@dur.bounceme.net>
<-  250 2.1.5 Ok
 -> DATA
<-  354 End data with <CR><LF>.<CR><LF>
 -> Date: Mon, 30 Dec 2013 14:33:17 -0800
 -> To: thufir@dur.bounceme.net
 -> From: thufir@dur.bounceme.net
 -> 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 thufir@dur.bouncem                   15/553   test Mon, 30 Dec 2013 10:15:12 -0800
     2 thufir@dur.bouncem                   15/581   test Mon, 30 Dec 2013 10:15:55 -0800
     3 thufir@dur.bouncem                   15/581   test Mon, 30 Dec 2013 10:29:57 -0800
     4 thufir@dur.bouncem                   15/581   test Mon, 30 Dec 2013 11:54:16 -0800
>N   5 thufir@dur.bouncem                   15/581   test Mon, 30 Dec 2013 14:33:17 -0800
? 5
Return-Path: <thufir@dur.bounceme.net>
X-Original-To: thufir@dur.bounceme.net
Delivered-To: thufir@dur.bounceme.net
Received: from dur.bounceme.net (localhost [127.0.0.1])
    by dur.bounceme.net (Postfix) with ESMTP id 52D162C3EFF
    for <thufir@dur.bounceme.net>; Mon, 30 Dec 2013 14:33:17 -0800 (PST)
Date: Mon, 30 Dec 2013 14:33:17 -0800
To: thufir@dur.bounceme.net
From: thufir@dur.bounceme.net
Subject: test Mon, 30 Dec 2013 14:33:17 -0800
X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
Message-Id: <20131230223317.52D162C3EFF@dur.bounceme.net>

This is a test mailing

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

É apenas um comando fácil.


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:<root@piwik-dev.example.com> SIZE=46
250 2.1.0 <root@piwik-dev.example.com>... Sender ok
>>> RCPT To:<root@piwik-dev.example.com>
>>> DATA
250 2.1.5 <root@piwik-dev.example.com>... 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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.