Как проверить, работает ли smtp из командной строки (Linux) [закрыто]

128

У меня есть SMTP-сервер, для ответа на этот вопрос его можно назвать: smtp.mydomain.com.

Как проверить, работает ли SMTP-сервер? Могу ли я отправлять электронные письма вручную из командной строки Linux?

balanv
источник
@Flexo Разве такие вопросы не следует переносить, а не закрывать? Похоже, это принадлежит Serverfault
Balmipour
1
@Balmip наши старые вопросы не могут быть перенесены даже модераторами. Для этого есть веские причины, обсуждаемые на meta.stackexchange.com (сейчас у меня нет ссылки), но учтите, что вопрос не удален.
Flexo
После проверки нескольких сообщений на Meta, мне кажется, что перенос "просто" нужно сначала открыть заново. Возможно, это невозможно со старыми вопросами, кстати. Думаю, ты знаешь это лучше меня. В любом случае, спасибо за ответ. Более важный момент, который я читал в мета-сообщениях, заключался в том, что миграция, похоже, требует «особенно ценного» вопроса. Не то чтобы это было бесполезно, но это тоже не драгоценный камень. Я этого не понимаю, так как SO переоценен по сравнению с другими сайтами, такими как ServerFault / Linux или Superuser, но я сохраню дискуссию на другой день (и это все равно принадлежит Meta, а не SO :)
Balmipour

Ответы:

175

Синтаксис для установления прямого сетевого соединения с использованием telnet следующий:

telnet {domain_name} {port_number}

Так что telnet к вашему серверу smtp как

telnet smtp.mydomain.com 25

И скопируйте и вставьте ниже

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

Примечание: не забудьте про "." в конце, который представляет конец сообщения. Строка «выйти» завершает сеанс.

balanv
источник
6
Вам следует дождаться ответа серверов на каждую команду и прервать выполнение, если вы получите ошибку и (код результата 4xx или 5xx).
Tripleee
18
Вместо того hello velanapps.com, чтобы писать, helo velanapps.comи если вы хотите знать, какие расширения smtp доступны, вы должны написать ehlo velanapps.com, как в примере SMTP
jgrocha
4
вы можете выйти, набрав quit
rhand
2
Этот ответ был полезен, однако я пропустил первую строку в своих тестах. Я все еще получал письма от SMTP-сервера. Было бы полезно, если бы вы могли рассказать немного о том, что здесь делает домен velanapps.com. Я всегда насторожен, когда вижу, что домен используется для чего-то подобного без объяснения того, что он делает с нашими данными. Спасибо.
Джереми
2
@Jeremy Это всего лишь образец данных, я удалил его и добавил заполнитель ...
balanv
26

Единственное, что касается использования telnet для тестирования postfix или другого SMTP, - это то, что вы должны знать команды и синтаксис. Вместо этого просто используйте сваки :)

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:~$ 

Это всего лишь одна простая команда.

Суфир
источник
2
Я ничего не знал о болотах. Спасибо!
Питер Лорон
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
Сатиш
источник
2

Не уверен, поможет ли это или нет, но это инструмент командной строки, который позволяет вам просто периодически отправлять тестовые письма с SMTP-сервера. http://code.google.com/p/woodpecker-tester/

ehsun7b
источник