Як перевірити, чи smtp працює з командної лінії (Linux) [закрито]


128

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

Як перевірити, чи працює SMTP-сервер? Чи можна надсилати електронні листи вручну з командної лінії Linux?


@Flexo Чи не слід мігрувати такі питання, а не закривати? Цей схожий на те, що він належить до сервера за замовчуванням
Balmipour

1
@Balmipour старі питання неможливо перенести навіть модератори. Існують вагомі причини для цього, обговорювані на meta.stackexchange.com (у мене зараз немає посилання на руку), але зауважте, що питання не видалено.
Flexo

Перевіривши кілька дописів на Meta, мені здається, що для міграції "просто" потрібно спочатку відкритись. Можливо, це не можливо зі старими питаннями, btw. Я думаю, ти це знаєш краще за мене. У будь-якому випадку, дякую за вашу відповідь. Більш релевантним моментом, який я читав у мета-повідомленнях, було те, що міграція, здається, вимагає "особливо цінного" питання. Не те, що цей є марним, але це теж не коштовність. Я цього не дуже розумію, оскільки 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

Примітка. Не забудьте "." в кінці, який представляє кінець повідомлення. Рядок "Вийти" завершує сеанс.


6
Вам слід дочекатися відповіді серверів на кожну команду та скасувати, якщо ви отримаєте та помилку (4xx або 5xx код результату).
трійчатка

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 для тестування постфікса чи іншого 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/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.