Cách kiểm tra xem smtp có hoạt động từ dòng lệnh (Linux) [đã đóng]


128

Tôi có một máy chủ SMTP, vì mục đích của câu hỏi này, hãy gọi nó: smtp.mydomain.com.

Làm cách nào để kiểm tra xem máy chủ SMTP có hoạt động không? Tôi có thể gửi email thủ công từ dòng lệnh Linux không?


@Flexo Không nên di chuyển những câu hỏi như vậy chứ không phải đóng? Cái này có vẻ như thuộc về Serverfault
Balmipour

1
@Balmipour câu hỏi cũ không thể được di chuyển, ngay cả bởi người điều hành. Có nhiều lý do tốt cho việc này được thảo luận trên meta.stackexchange.com (Tôi không có liên kết để trao tay ngay bây giờ), nhưng lưu ý rằng câu hỏi không bị xóa.
Flexo

Sau khi kiểm tra một số bài đăng trên Meta, có vẻ như (đối với tôi) di chuyển "chỉ" cần mở lại trước tiên. Có lẽ điều này là không thể với những câu hỏi cũ, btw. Tôi đoán bạn biết điều đó tốt hơn tôi. Dù sao, cảm ơn câu trả lời của bạn. Một điểm phù hợp hơn mà tôi đã đọc trong các bài đăng meta là việc di chuyển dường như đòi hỏi một câu hỏi "đặc biệt có giá trị". Không phải cái này là vô dụng, nhưng nó cũng không phải là một viên ngọc quý. Tôi không hiểu điều này lắm, vì SO được đánh giá quá cao trên các trang web khác như ServerFault / Linux hoặc Superuser, nhưng tôi sẽ tiếp tục tranh luận cho một ngày khác (và dù sao nó cũng thuộc về Meta chứ không phải SO :)
Balmipour

Câu trả lời:


175

Cú pháp để thiết lập kết nối mạng thô bằng telnet là:

telnet {domain_name} {port_number}

Vì vậy, telnet đến máy chủ smtp của bạn như

telnet smtp.mydomain.com 25

Và sao chép và dán bên dưới

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

Lưu ý: Đừng quên "." ở cuối đại diện cho phần cuối của tin nhắn. Dòng "thoát" kết thúc phiên.


6
Bạn nên chờ phản hồi của máy chủ cho từng lệnh và hủy bỏ nếu bạn gặp lỗi và (mã kết quả 4xx hoặc 5xx).
tripleee

18
Thay vì hello velanapps.combạn nên viết helo velanapps.comvà nếu bạn muốn biết tiện ích mở rộng smtp nào có sẵn, bạn nên viết ehlo velanapps.com, như trong Ví dụ về SMTP
jgrocha

4
bạn có thể thoát bằng cách gõ thoát
rhand 31/05/2015

2
Câu trả lời này rất hữu ích, tuy nhiên tôi đã bỏ qua dòng đầu tiên trong các bài kiểm tra của mình. Tôi vẫn nhận được email thông qua máy chủ smtp. Sẽ rất hữu ích nếu bạn có thể bao gồm một chút về những gì tên miền velanapps.com đang làm ở đây. Tôi luôn cảnh giác khi thấy một tên miền được sử dụng cho một cái gì đó như thế này mà không có lời giải thích nào về những gì nó làm với dữ liệu của chúng tôi. Cảm ơn.
Jeremy

2
@Jeremy Nó chỉ là một dữ liệu mẫu, tôi đã xóa nó và thêm giữ chỗ ...
balanv

26

Điều duy nhất về việc sử dụng telnet để kiểm tra postfix, hoặc SMTP khác, là bạn phải biết các lệnh và cú pháp. Thay vào đó, chỉ cần sử dụng 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:~$ 

Đó chỉ là một lệnh dễ dàng.


2
Tôi không biết về swaks. Cảm ơn!
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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.