150 votes

Comment vérifier si le smtp fonctionne à partir de la ligne de commande (Linux)

J'ai un serveur SMTP, pour les besoins de cette question, appelons-le : smtp.mondomaine.com.

Comment puis-je vérifier si le serveur SMTP fonctionne ? Puis-je envoyer des e-mails manuellement à partir de la ligne de commande Linux ?

0 votes

@Flexo Ces questions ne devraient-elles pas être migrées plutôt que fermées ? Cette question semble appartenir à Serverfault

1 votes

@Balmipour les anciennes questions ne peuvent pas être migrées, même par les modérateurs. Il y a de bonnes raisons pour cela, discutées sur meta.stackexchange.com (Je n'ai pas de lien sous la main pour le moment), mais notez que la question n'est pas supprimée.

0 votes

Après avoir consulté plusieurs messages sur Meta, il semble (pour moi) que la migration nécessite "simplement" de rouvrir d'abord. Peut-être que ce n'est pas possible avec les anciennes questions, btw. Je suppose que vous le savez mieux que moi. Quoi qu'il en soit, merci pour votre réponse. Un point plus pertinent que j'ai lu dans les métapostes était que la migration semble nécessiter une question "particulièrement précieuse". Non pas que celle-ci soit inutile, mais ce n'est pas non plus un bijou. Je ne comprends pas trop cela, puisque SO est surestimé par rapport à d'autres sites comme ServerFault / Linux ou Superuser, mais je garde le débat pour un autre jour (et il appartient à Meta de toute façon, pas à SO :)

203voto

balanv Points 3101

La syntaxe pour établir une connexion réseau brute à l'aide de telnet est la suivante :

telnet {domain_name} {port_number}

Donc, connectez-vous à votre serveur smtp comme suit

telnet smtp.mydomain.com 25

Et copiez et collez le texte ci-dessous

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

Note : N'oubliez pas le "." à la fin qui représente la fin du message. La ligne "quit" met fin à la session.

6 votes

Vous devez attendre la réponse des serveurs à chaque commande, et abandonner si vous obtenez une erreur (code de résultat 4xx ou 5xx).

1 votes

Vous avez besoin d'une ligne blanche entre les en-têtes et le message, à part cela, c'est un exemple qui fonctionne.

1 votes

@tripleee : en fait, lorsque j'ai collé ceci dans telnet, j'ai pu obtenir le courriel du serveur smtp. Note : Après le "." à la fin, j'ai laissé un saut de ligne.

32voto

Thufir Points 1153

Le seul problème de l'utilisation de telnet pour tester postfix, ou tout autre SMTP, est que vous devez connaître les commandes et la syntaxe. Au lieu de cela, il suffit d'utiliser 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:~$ 

C'est juste une commande facile.

4 votes

Je ne connaissais pas les swaks. Merci.

2 votes

J'ai essayé swaks c'est génial, wow ! Et disponible en tant que paquet standard dans Debian

18voto

Satish Points 3331
[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

2voto

ehsun7b Points 1672

Je ne sais pas si cela peut vous aider ou non, mais il s'agit d'un outil en ligne de commande qui vous permet d'envoyer simplement des courriers de test à partir d'un serveur SMTP de manière primaire. http://code.google.com/p/woodpecker-tester/

1voto

Shawn Points 31

C'est ce que j'utilise. Vous aurez besoin d'un programme comme PUTTY car Windows n'inclut pas TELNET par défaut.

http://www.internetworkconsulting.net/content/smtp-test-message

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X