Cara memeriksa apakah smtp bekerja dari commandline (Linux) [ditutup]

128

Saya memiliki server SMTP, untuk keperluan pertanyaan ini, sebut saja: smtp.mydomain.com.

Bagaimana saya memeriksa apakah server SMTP sedang bekerja? Bisakah saya mengirim email secara manual dari commandline Linux?

balanv
sumber
@Flexo Tidakkah seharusnya pertanyaan seperti itu dimigrasikan alih-alih ditutup? Yang ini sepertinya milik Serverfault
Balmipour
1
@Balmipour pertanyaan lama tidak dapat dimigrasikan, bahkan oleh moderator. Ada alasan bagus untuk ini yang dibahas di meta.stackexchange.com (saya tidak punya tautan langsung sekarang), tetapi perhatikan bahwa pertanyaannya tidak dihapus.
Flexo
Setelah memeriksa beberapa posting di Meta, sepertinya (untuk saya) migrasi "hanya" perlu dibuka kembali terlebih dahulu. Mungkin ini tidak mungkin dengan pertanyaan lama, btw. Saya kira Anda tahu itu lebih baik dari saya. Bagaimanapun, terima kasih atas jawaban Anda. Poin yang lebih relevan yang saya baca di posting meta adalah bahwa migrasi tampaknya memerlukan pertanyaan "sangat berharga". Bukannya ini tidak berguna, tapi juga bukan permata. Saya tidak mengerti banyak hal ini, karena SO terlalu dibesar-besarkan atas situs lain seperti ServerFault / Linux atau Superuser, tapi saya akan menyimpan perdebatan untuk hari lain (dan itu milik Meta, bukan SO :)
Balmipour

Jawaban:

175

Sintaks untuk membuat koneksi jaringan mentah menggunakan telnet adalah ini:

telnet {domain_name} {port_number}

Jadi telnet ke server smtp Anda suka

telnet smtp.mydomain.com 25

Dan salin dan tempel di bawah ini

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

Catatan: Jangan lupa tanda "." di akhir yang mewakili akhir pesan. Garis keluar "keluar" mengakhiri sesi.

balanv
sumber
6
Anda harus menunggu respons server untuk setiap perintah, dan batalkan jika Anda mendapatkan kesalahan (kode hasil 4xx atau 5xx).
tripleee
18
Alih-alih hello velanapps.comAnda harus menulis helo velanapps.comdan jika Anda ingin tahu ekstensi smtp mana yang tersedia, Anda harus menulis ehlo velanapps.com, seperti pada Contoh SMTP
jgrocha
4
Anda dapat keluar dengan mengetikkan keluar
rhand
2
Jawaban ini bermanfaat, namun saya menghilangkan baris pertama dalam pengujian saya. Saya masih dapat email dari server smtp. Akan sangat membantu jika Anda dapat memasukkan sedikit tentang apa yang dilakukan domain velanapps.com di sini. Saya selalu waspada ketika saya melihat domain yang digunakan untuk sesuatu seperti ini tanpa penjelasan tentang apa yang dilakukannya dengan data kami. Terima kasih.
Jeremy
2
@ Jeremy Ini hanya data sampel, saya telah menghapusnya dan menambahkan placeholder ...
balanv
26

Satu-satunya hal tentang menggunakan telnet untuk menguji postfix, atau SMTP lainnya, adalah Anda harus mengetahui perintah dan sintaksisnya. Sebagai gantinya, cukup gunakan swap :)

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

Itu hanya satu perintah mudah.

Thufir
sumber
2
Saya tidak tahu tentang swap. Terima kasih!
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
sumber
2

Tidak yakin apakah ini membantu atau tidak, tetapi ini adalah alat baris perintah yang memungkinkan Anda mengirim surat uji dari server SMTP secara primitif. http://code.google.com/p/woodpecker-tester/

ehsun7b
sumber