SMTP&POP命令详解 !!!

zt371 发布于 2009/05/05 16:14
阅读 2K+
收藏 0

独孤九霄 


以前看到有朋友问到流光扫描到POP3服务器的用户名和密码应该怎么办??可以用OUTLOOK之类的软件来帮别人收Email.但!!! 
1.用他们消耗的系统资源太大. 
2.使用前要进行各项设置!麻烦. 
3.我们要学更多的知识. 
所以,请大家往下看.看看如何用telnet来收发Email~ 
要说明的是.指令不分大小写.(用户口令除外) 
是不是因该先解释一下什么是SMTP什么是POP呀???算了.不说了.网上有很多介绍他们的文章.都比我说的要好. 
好了不多废话了,让我们开始. 
没有发怎么收呀???我们用smtp服务器发一封Email先. 
telnet smtp.21cn.com 25//连接smtp服务器.端口是25 
220 21cn.com SMTP Server of AIMC 2.9.5.1; Mon, 25 Jun 2001 12:41:51 +0800//服务器返回的信息 
HELO 
250 21cn.com, unknown.host<61.138.26.124>; okay. 
MAIL FROM:stonegong@21cn.com//告诉服务器发件人的Email地址 
250 ;, sender ok. 
RCPR RO:stonegong@yeah.net//告诉服务器收件人的地址. 
250 User not local, will forward to ;.//OK!下面开始写信了~~ 
DATA//告诉服务器我们要开始写信了~~ 
SUBJECT:HELLO//subject后面填写的是邮件的主题.如果不需要主题可以直接输入内容. 
Hi: 
How are you? 
.//换行后输入.后按回车,表示信件内容书写完毕. 
250 Requested mail action okay, completed. 
QUIT//发送信件,结束对话,退出SMTP服务器.如果想取消发送可以用RSET命令. 
221 21cn.com closing connection.//好了,发完了. 
下面我们来用POP服务器收我们刚才发送的Email. 
telnet pop.yeah.net 110//还是要先连接.端口110 
+OK incore system mail POP3 Server ready 
user stonegong//告诉服务器我的用户名 
+OK core mail 
pass *********//这里的****代表你的密码.你输入的时候会明文显示.如果有人在旁边还是先关掉回显吧~ 
+OK 1 message(s) [457 byte(s)]//看到了吗?有一封信呀~ 
list//让我们仔细看看. 
+OK 1 457 
1 457 
.//第一个475是所有邮件的总字节数,1后面的那个是第一封邮件的字节数.因为只有一封,所以相等了. 
retr 1//返回第一封信的全部内容. 
+OK 457 octets 
Received: from 21cn.com (unknown [61.140.60.248]) 
by mx1.yeah.net (Postfix) with SMTP id E578D1CED4CAC 
for ;; Mon, 25 Jun 2001 12:49:17 +0800 (CST) 
Received: from unknown.host([61.138.26.124]) by 21cn.com(AIMC 2.9.5.1) 
with SMTP id jma3b36f1fc; Mon, 25 Jun 2001 12:43:27 +0800 
subject:HELLO 
hi: 
How are you? 
Message-Id: <20010625044917.E578D1CED4CAC@mx1.yeah.net>; 
Date: Mon, 25 Jun 2001 12:49:17 +0800 (CST) 
From: stonegong@21cn.com 
.//看懂了吗??就是刚才发的那封~ 
dele 1//没用了,删了吧. 
+OK core mail 
list 
+OK 0 0 
.//看看没了吧~~但这时邮件并没有完全删除,要等到退出后在完全删除,如果现在想恢复可以用REST n命令,n表示Email的编号. 
quit//没什么干的了.走吧~. 
+OK core mail 
以上是我telnet的LOG文件的全部内容.我加了注释,肯定都能看懂吧~~ 
写的比较匆忙.肯定有错别字了.自己慢慢理解吧~还有一些命令没有提到.不说了这些应该够用了.如果想知道就 
看看下面,然后自己试试. 
如果上面有哪些命令你没有理解也可以看看下面这份命令详解. 
先说说SMTP服务器的. 
HELO:<地址>; 
   利用HELO命令可以告诉SMTP服务器你的地址,<地址>;一般为你的E-mail地址@后面的部分。若你的电 
子邮件地址为: 
  someone@21cn.com,则<地址>;就为21cn.com(我就什么也没输入.也可以的) 
  MAIL FROM:<发件人Email地址>; 
   利用MAIL FROM命令输入收信者回复你时可用的电子邮件地址,一般为你的电子信箱地址,但也可以是符合邮件地址格式的任意字符。 
  RCPT TO:<收信人的E-mail地址>; 
   RCPT TO命令要求你输入收信人的电子邮件地址,可以用多个RCPT TO命令将邮件同时发送给多个收信 
人。 
  VRFY:<某个Email地址>; 
   VRFY命令将验证其后的电子邮件地址的正确性。一般可先利用VRFY命令对电子邮件地址进行校验,再利用RCPT TO命令将邮件发送到该地址。这个命令我没试成功.可能是我的命令用错了. 
  DATA 
   键入DATA后回车,即可开始输入邮件内容。如果在首行输入Subject:<主题内容>;<回车>;,则收信者可在主题或Subject栏将看到<主题内容>;。否则,输入部分将作为邮件主体(Body)部分的内容。结束信件内容输入,可顺序按<回车>;<.(句号)>;<回车>;. 
  RSET 
   RSET命令将中止发信操作,删除输入内容。 
  QUIT 
   QUIT发送信件,结束对话,退出SMTP服务器。 
在说说POP的. 
USER <用户名>; 
   用USER命令输入用户信箱名,<用户名>;一般为用户电子邮件地址@前面的部分,如地址为someone@21cn.com,则<用户名>;为Someone,命令执行后将显示一些信息,并提示用户输入密码。 
  PASS <密码>; 
   用PASS命令输入用户信箱密码。 
  STAT 
   输入STAT命令,服务器将告诉用户共有多少封信件在信箱中。 
  LIST 
   显示信件个数、序号和每个信件的大小。 
  TOP n m 
   显示第n个信件前m行的内容。 
  RETR n 
   RETR命令可以显示第n个信件的全部内容。 
  DELE n 
   DELE命令用来删除指定的第n个信件。 
  REST n 
   REST命令可以恢复被删除的n个信件。 
  LAST 
   LAST命令可以显示下一个信件的编号。 
  NOOP 
   NOOP命令不执行任何操作,仅用来测试服务器的响应是否正常。 
  QUIT 
   QUIT退出POP3服务器,结束信件查阅过程。 
****************************************************************************** 
终于写完了.好高兴.不知对你有没有用.希望有吧~~如果有就请我吃饭吧~~哈哈~~ 
写代颜色的文章真的很不容易!! 
上文中有写笔误。 
下面是实例: 
telnet xxxx.xxxx.xxx 25 
mail from:test@263.net(谁的邮箱?我也不只到;) 
rcpt to:test@263.net 
data 
xxx 

quit 
如果想看服务器所支持的命令,可以telnet xxxx 25后用help命令察看 
如: 
telnet xxx.xxx.xxx 25 
help 
214-This is Sendmail version 8.9.3 
214-Topics: 
214- HELO EHLO MAIL RCPT DATA 
214- RSET NOOP QUIT HELP VRFY 
214- EXPN VERB ETRN DSN 
214-For more info use "HELP ;". 
214-To report bugs in the implementation send email to 
214- sendmail-bugs@sendmail.org. 
214-For local inFORMation send email to Postmaster at your site. 
214 End of HELP info 
呵呵, 
that'a all 
enjoy it:) 

pop3的命令集在rfc1939中说明 
我摘抄如下: 
9. POP3 Command Summary 
Minimal POP3 Commands: 
USER name valid in the AUTHORIZATION state 
PASS string 
QUIT 
STAT valid in the TRANSACTION state 
LIST [msg] 
RETR msg 
DELE msg 
NOOP 
RSET 
QUIT 
Optional POP3 Commands: 
APOP name digest valid in the AUTHORIZATION state 
TOP msg n valid in the TRANSACTION state 
UIDL [msg] 
POP3 Replies: 
+OK 
-ERR 
Note that with the exception of the STAT, LIST, and UIDL commands, 
the reply given by the POP3 server to any command is significant 
only to "+OK" and "-ERR". Any text occurring after this reply 
may be ignored by the client. 
一个完整实例: 
S: 
C: 
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>; 
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb 
S: +OK mrose's maildrop has 2 messages (320 octets) 
C: STAT 
S: +OK 2 320 
C: LIST 
S: +OK 2 messages (320 octets) 
S: 1 120 
S: 2 200 
S: . 
C: RETR 1 
S: +OK 120 octets 
S: 
S: . 
C: DELE 1 
S: +OK message 1 deleted 
C: RETR 2 
S: +OK 200 octets 
S: 
S: . 
C: DELE 2 
S: +OK message 2 deleted 
C: QUIT 
S: +OK dewey POP3 server signing off (maildrop empty) 
C: 
S: 

  
以前看到有朋友问到流光扫描到POP3服务器的用户名和密码应该怎么办??可以用OUTLOOK之类的软件来帮别人收Email.但!!! 
1.用他们消耗的系统资源太大. 
2.使用前要进行各项设置!麻烦. 
3.我们要学更多的知识. 
所以,请大家往下看.看看如何用telnet来收发Email~ 
要说明的是.指令不分大小写.(用户口令除外) 
是不是因该先解释一下什么是SMTP什么是POP呀???算了.不说了.网上有很多介绍他们的文章.都比我说的要好. 
好了不多废话了,让我们开始. 
没有发怎么收呀???我们用smtp服务器发一封Email先. 
telnet smtp.21cn.com 25//连接smtp服务器.端口是25 
220 21cn.com SMTP Server of AIMC 2.9.5.1; Mon, 25 Jun 2001 12:41:51 +0800//服务器返回的信息 
HELO 
250 21cn.com, unknown.host<61.138.26.124>; okay. 
MAIL FROM:stonegong@21cn.com//告诉服务器发件人的Email地址 
250 ;, sender ok. 
RCPR RO:stonegong@yeah.net//告诉服务器收件人的地址. 
250 User not local, will forward to ;.//OK!下面开始写信了~~ 
DATA//告诉服务器我们要开始写信了~~ 
SUBJECT:HELLO//subject后面填写的是邮件的主题.如果不需要主题可以直接输入内容. 
Hi: 
How are you? 
.//换行后输入.后按回车,表示信件内容书写完毕. 
250 Requested mail action okay, completed. 
QUIT//发送信件,结束对话,退出SMTP服务器.如果想取消发送可以用RSET命令. 
221 21cn.com closing connection.//好了,发完了. 
下面我们来用POP服务器收我们刚才发送的Email. 
telnet pop.yeah.net 110//还是要先连接.端口110 
+OK incore system mail POP3 Server ready 
user stonegong//告诉服务器我的用户名 
+OK core mail 
pass *********//这里的****代表你的密码.你输入的时候会明文显示.如果有人在旁边还是先关掉回显吧~ 
+OK 1 message(s) [457 byte(s)]//看到了吗?有一封信呀~ 
list//让我们仔细看看. 
+OK 1 457 
1 457 
.//第一个475是所有邮件的总字节数,1后面的那个是第一封邮件的字节数.因为只有一封,所以相等了. 
retr 1//返回第一封信的全部内容. 
+OK 457 octets 
Received: from 21cn.com (unknown [61.140.60.248]) 
by mx1.yeah.net (Postfix) with SMTP id E578D1CED4CAC 
for ;; Mon, 25 Jun 2001 12:49:17 +0800 (CST) 
Received: from unknown.host([61.138.26.124]) by 21cn.com(AIMC 2.9.5.1) 
with SMTP id jma3b36f1fc; Mon, 25 Jun 2001 12:43:27 +0800 
subject:HELLO 
hi: 
How are you? 
Message-Id: <20010625044917.E578D1CED4CAC@mx1.yeah.net>; 
Date: Mon, 25 Jun 2001 12:49:17 +0800 (CST) 
From: stonegong@21cn.com 
.//看懂了吗??就是刚才发的那封~ 
dele 1//没用了,删了吧. 
+OK core mail 
list 
+OK 0 0 
.//看看没了吧~~但这时邮件并没有完全删除,要等到退出后在完全删除,如果现在想恢复可以用REST n命令,n表示Email的编号. 
quit//没什么干的了.走吧~. 
+OK core mail 
以上是我telnet的LOG文件的全部内容.我加了注释,肯定都能看懂吧~~ 
写的比较匆忙.肯定有错别字了.自己慢慢理解吧~还有一些命令没有提到.不说了这些应该够用了.如果想知道就 
看看下面,然后自己试试. 
如果上面有哪些命令你没有理解也可以看看下面这份命令详解. 
先说说SMTP服务器的. 
HELO:<地址>; 
   利用HELO命令可以告诉SMTP服务器你的地址,<地址>;一般为你的E-mail地址@后面的部分。若你的电 
子邮件地址为: 
  someone@21cn.com,则<地址>;就为21cn.com(我就什么也没输入.也可以的) 
  MAIL FROM:<发件人Email地址>; 
   利用MAIL FROM命令输入收信者回复你时可用的电子邮件地址,一般为你的电子信箱地址,但也可以是符合邮件地址格式的任意字符。 
  RCPT TO:<收信人的E-mail地址>; 
   RCPT TO命令要求你输入收信人的电子邮件地址,可以用多个RCPT TO命令将邮件同时发送给多个收信 
人。 
  VRFY:<某个Email地址>; 
   VRFY命令将验证其后的电子邮件地址的正确性。一般可先利用VRFY命令对电子邮件地址进行校验,再利用RCPT TO命令将邮件发送到该地址。这个命令我没试成功.可能是我的命令用错了. 
  DATA 
   键入DATA后回车,即可开始输入邮件内容。如果在首行输入Subject:<主题内容>;<回车>;,则收信者可在主题或Subject栏将看到<主题内容>;。否则,输入部分将作为邮件主体(Body)部分的内容。结束信件内容输入,可顺序按<回车>;<.(句号)>;<回车>;. 
  RSET 
   RSET命令将中止发信操作,删除输入内容。 
  QUIT 
   QUIT发送信件,结束对话,退出SMTP服务器。 
在说说POP的. 
USER <用户名>; 
   用USER命令输入用户信箱名,<用户名>;一般为用户电子邮件地址@前面的部分,如地址为someone@21cn.com,则<用户名>;为Someone,命令执行后将显示一些信息,并提示用户输入密码。 
  PASS <密码>; 
   用PASS命令输入用户信箱密码。 
  STAT 
   输入STAT命令,服务器将告诉用户共有多少封信件在信箱中。 
  LIST 
   显示信件个数、序号和每个信件的大小。 
  TOP n m 
   显示第n个信件前m行的内容。 
  RETR n 
   RETR命令可以显示第n个信件的全部内容。 
  DELE n 
   DELE命令用来删除指定的第n个信件。 
  REST n 
   REST命令可以恢复被删除的n个信件。 
  LAST 
   LAST命令可以显示下一个信件的编号。 
  NOOP 
   NOOP命令不执行任何操作,仅用来测试服务器的响应是否正常。 
  QUIT 
   QUIT退出POP3服务器,结束信件查阅过程。 
****************************************************************************** 
终于写完了.好高兴.不知对你有没有用.希望有吧~~如果有就请我吃饭吧~~哈哈~~ 
写代颜色的文章真的很不容易!! 
上文中有写笔误。 
下面是实例: 
telnet xxxx.xxxx.xxx 25 
mail from:test@263.net(谁的邮箱?我也不只到;) 
rcpt to:test@263.net 
data 
xxx 

quit 
如果想看服务器所支持的命令,可以telnet xxxx 25后用help命令察看 
如: 
telnet xxx.xxx.xxx 25 
help 
214-This is Sendmail version 8.9.3 
214-Topics: 
214- HELO EHLO MAIL RCPT DATA 
214- RSET NOOP QUIT HELP VRFY 
214- EXPN VERB ETRN DSN 
214-For more info use "HELP ;". 
214-To report bugs in the implementation send email to 
214- sendmail-bugs@sendmail.org. 
214-For local inFORMation send email to Postmaster at your site. 
214 End of HELP info 
呵呵, 
that'a all 
enjoy it:) 

pop3的命令集在rfc1939中说明 
我摘抄如下: 
9. POP3 Command Summary 
Minimal POP3 Commands: 
USER name valid in the AUTHORIZATION state 
PASS string 
QUIT 
STAT valid in the TRANSACTION state 
LIST [msg] 
RETR msg 
DELE msg 
NOOP 
RSET 
QUIT 
Optional POP3 Commands: 
APOP name digest valid in the AUTHORIZATION state 
TOP msg n valid in the TRANSACTION state 
UIDL [msg] 
POP3 Replies: 
+OK 
-ERR 
Note that with the exception of the STAT, LIST, and UIDL commands, 
the reply given by the POP3 server to any command is significant 
only to "+OK" and "-ERR". Any text occurring after this reply 
may be ignored by the client. 
一个完整实例: 
S: 
C: 
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>; 
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb 
S: +OK mrose's maildrop has 2 messages (320 octets) 
C: STAT 
S: +OK 2 320 
C: LIST 
S: +OK 2 messages (320 octets) 
S: 1 120 
S: 2 200 
S: . 
C: RETR 1 
S: +OK 120 octets 
S: 
S: . 
C: DELE 1 
S: +OK message 1 deleted 
C: RETR 2 
S: +OK 200 octets 
S: 
S: . 
C: DELE 2 
S: +OK message 2 deleted 
C: QUIT 
S: +OK dewey POP3 server signing off (maildrop empty) 
C: 
S: ;



加载中
0
L
LiuDonghua
使用telnet连接smtp时应该也要用户身份认证吧,好像使用auth命令,但不知怎么用?
0
L
LiuDonghua

我用楼主的smtp地址测试时,第二个命令HELO就出错了

C:\Windows\system32>telnet smtp.21cn.com 25

Trying 59.36.102.10...

Connected to smtp.cdn.21cn.com.

Escape character is '^]'.

220 FREE-AS1-SMTP KBAS is ready

EHLO

552 First Command must be HELO or EHLO

Connection closed by foreign host.

0
hexawing
hexawing

RCPR RO:stonegong@yeah.net//告诉服务器收件人的地址.

应为:RCPT TO:...

而且这个错误还广为流传……

返回顶部
顶部