当前位置:文档之家› POP3与SMTP协议

POP3与SMTP协议

POP3协议

POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC 1939 定义(见 Reference/rfc1939 pop3.html)。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。

使用telnet 连接pop3

最直观的了解什么是POP3,我觉得采用telnet的方式用pop3连接到邮件服务器,进行邮件的接收是最有效的。

打开终端,(C:client, S:Server)

C: telnet http://biz.doczj.com/doc/5317735533.html, 110 (用telnet方式连接163的pop3服务器,pop3协定端口为110)

S: Trying 202.108.5.100...

Connected to http://biz.doczj.com/doc/5317735533.html,.

Escape character is '^]'.

+OK Welcome to coremail Mail Pop3 Server

(163coms[3d8c1fa079729fb6acc588e66d30360es])

(服务器通常开头返回+OK表示正确的回应,+ERR表示所发命令有误)

C: USER ***** (***处输入你的邮件用户名)

S: +OK core mail (表示接受)

C: PASS ***** (***处输入密码,这里都是明文显示)

S: +OK 5 message(s) [9782 byte(s)] (这里表示服务器接受该帐户,服务器上对应有5封邮件,总大小9782个字节)

C:LIST (LIST 命令列出每一封邮件的信息,己每封邮件对应的ID 号和大小)

S: +OK 5 9782

1 1298

2 1311

3 1224

4 1312

5 4637

.

C: TOP 1 0 (格式 TOP num 0, num代表邮件ID号,返回该邮件的头部信息)

S:+OK 1298 octets (服务器接受)

Received: from http://biz.doczj.com/doc/5317735533.html, (unknown [221.10.25.6])

(返回的相关内容)

by smtp1 (Coremail) with SMTP id C9GowLCLsyoRy_JI5Ci2Mg==.42306S2;

Mon, 13 Oct 2008 12:14:10 +0800 (CST)

Date: Mon, 13 Oct 08 12:14:09 +0800 (CST)

From: tommy_mail@http://biz.doczj.com/doc/5317735533.html,

To: tommy_mail

Subject: @@!$$%^&

MIME-Version: 1.0

Content-Type: multipart/alternative; boundary="=-plenware_alt_"

X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUUYxn0WfASr-VFAUDa7-sFnT

9fnUUIcSsGvfJTRUUUjlxYjsxI4VWxJwAYFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1I0E4x80

FVCIwcAKzIAtM7C26IkvcIIF6IxKo4kEV4yl1IIY67AEw4v_Jr0_Jr4l5I8CrVACY4xI64

kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1Y6r17McIj6I8E87Iv67AKxVW8JVWxJwAC

Y4xI67k04243AVAKzVAKj4xxM4xvF2IEb7IF0Fy26I8I3I1lFVAaXTZC67ZELSn0mTvEwa

V2v3VFvVW8M4IE42xK82IY64kIx2x0424lw4CEF2IF47xS0VAv8wAKzVCY07xG64k0F24l

7I0Y64k_MxkFs20EY4vE77kJMxkIecxEwVAFwVW8XwCY0x0Ix7I2Y4AK64vIr41l4x8a6c

8ajcxJMI8E67AF67kF1VAFwI0_Jr0_JrylIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY

6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVC2z280aVAFwI0_Gr0_Cr1lIxAIcVC2z2

80aVCY1x0267AKxVW8JVW8Jr1l6VACY4xI67k04243AbIYCTnIWIevJa73UjIFyTuYvjxU

yYZXDUUUU

Message-Id: <48F2CB12.33901D.26072@http://biz.doczj.com/doc/5317735533.html,>

.

C: RETR 2 (格式 RETR num, num为邮件ID号,返回邮件全部源码)

S: +OK 1311 octets

Received: from http://biz.doczj.com/doc/5317735533.html, (unknown [221.10.25.6])

by smtp4 (Coremail) with SMTP id DtGowLCrK4xUyvJIJeKfLg==.58545S2;

Mon, 13 Oct 2008 12:11:00 +0800 (CST)

.

.

.

.

.

.

--=-plenware_alt_--

.

C: NOOP (空操作,起延时作用,服务器会在一定时间内无操作的话自动退出)

S: +OK core mail

C: UIDL (邮件的唯一ID,通常称“独立-ID表”,用于唯一确定一封邮件,通常用于客户端判别已读未读)

S: +OK 5 9782

1 1tbiYAaMeEJw1XtwEgAAss (由服务器产生的邮件唯一ID,RFC文档上说是服务器内唯一,但估计说成全球唯一也不为过)

2 1tbiYAeMeEJw1XtoyQAAsu

3 1tbiYRaMeEJw2LVItgAAsi

4 1tbiwQqMeEij15ERZQAAsm

5 1tbiwReMeEij15EzUgAAsu

.

C: QUIT (退出命令)

S: +OK core mail

Connection closed by foreign host.

-------------------------------------------------------------------------------------------------------------------------*

更加详细的关于telnet的描述可参看 Reference/telnet 操作 smtp pop.html

POP3协议的状态和相关命令

POP3有三种状态:

a) The AUTHORIZATION State

当一个TCP连接从客户端连接到服务器以后,就进入了这个状态。通过常服务器会返回以下类似的信息:

S: +OK POP3 server ready

退出这个状态使用命令

[QUIT] Command .....................退出与POP3服务器的连接

b) The TRANSACTION State

当用户成功连接并登录到邮件服务器后,就进入了TRANSACTION状态。这个状态下可以使用的命令有:

[STAT] Command .....................查看当前服务器邮件的总数和总大小

[LIST] Command .....................列出每封邮件对应的ID号和单个邮件大小

[RETR num] Command .....................返回对应ID邮件的全部内容

[DELE num] Command .....................删除对应ID邮件

[NOOP] Command .....................延迟命令,执行空操作,以延迟系统退出时间

[RSET] Command .....................当执行完删除命令后,要执行RESET命令才能在当前立即返回删除的效果

c) The UPDATE State

如果在TRANSACTION状态下发出QUIT命令,在退出POP3连接后会自动发出UPDATE状态。(如果在AUTHORIZATION状态下发出QUIT命令,则不会有UPDATE状态,这涉及到DELETE命令的效果)

其他的 Optional POP3 Commands

[TOP num] Command .....................列出对应ID邮件的邮件头信息

[UIDL num or UIDL] Command .....................列出全部或对应ID邮件的UIDL

[USER name] Command .....................输入用户名

[PASS password] Command ...................输入密码

[APOP name digest] Command ............用于防护USER/PASS存在泄密的可能性。name digest指定邮箱的字串和MD5算法生成的密码串。

POP3协议的解析

对于自己开发pop3客户端程序,如何解析pop3所收到的源码信息是工作量很大而且极为关键的部分。

本人认为,解析pop3协议需要注意以下问题:

a)如何收取定位关键字段,并读取相应信息。如Subject,boundary字段的寻找,和相应内容的存放

b)理解源码的基本格式。邮件的基本格式由MIME协议规定,可参看

http://biz.doczj.com/doc/5317735533.html,/wiki/MIME,或者Referrence/RFC2045.html。

c)如何设计数据结构存放相应信息。本人推荐将文本信息和附件信息统一成一种数据结构,按照类型来进行区分。

d)学习字符集和网络编码方式,邮件中相当多地方设计到

e)CRLF的理解。通常CRLF代表/r/n,在编程时每一个命令也是由此结束,但windows平台和linux平台中对CRLFx的定义不一样。

g)附件的接收和保存。特别是识别多附件时。

h)扩展性:为以后增加字符集和编码方式,以及html文档的支持等提供接口。

i)适应不同邮件服务器略有差别的邮件源码格式。相信这一点在解析时会让你爆血滴。关键

还是在一个标准问题,可惜的是并没有一个标准规定了每一个字段的细到空格分号等的格式。

SMTP协议

简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是事实上的在Internet传输email的标准。SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。

用telnet 连接SMTP服务器

最直观的方式是用telnet连接到SMTP的服务器,看如何利用命令操作SMTP。

打开终端:(C:client, S:Server)

------------------------------------------------------------------------------------------------------------------

C: telnet http://biz.doczj.com/doc/5317735533.html, 25 (连接到163的SMTP服务器,协议规定SMTP服务器的端口号为25)

S: Trying 202.108.5.83...

Connected to http://biz.doczj.com/doc/5317735533.html,.

Escape character is '^]'.

220 http://biz.doczj.com/doc/5317735533.html, Anti-spam GT for Coremail System (163com[071018]) (220 表示连接成功)

C: HELO http://biz.doczj.com/doc/5317735533.html, (协议规定的握手过程,格式为HELO + 服务器名称)

S: 250 OK (250 表示握手成功)

C: AUTH LOGIN (AUTH LOGIN 是用户登录命令)

S: 334 dXNlcm5hbWU6 (334表示服务器接受)

C: tommy_mail (输入明文用户名)

S: 535 Error: authentication failed (服务器拒绝,因为SMTP要求用户名和密码都通过64位编码后再发送)

C: AUTH LOGIN (重新要求SMTP登录)

S: 334 dXNlcm5hbWU6

C: dG9tb*****FpbA== (用编码后的内容发送)

S: 334 UGFzc3dvcmQ6 (334表示接受)

C: ********aXZldXA= (编码后的密码)

S: 235 Authentication successful (235 登录成功)

C: MAIL FROM: (MAIL FROM:<>格式,用来记录发送者,这里要求必须是完全正确的发送者邮箱,不可作假,否则通过不了)

S: 250 Mail OK (250 系统常用确认信息)

C: RCPT TO: (接收者邮箱,可多次使用以实现发送给多个人)

S: 250 Mail OK

C: DATA (DATA明令表示以下为邮件正文)

S: 354 End data with .

C: TO:11@11 (发送给谁,这里可自由撰写,也是伪造邮件的一个入口,欺骗一般人可以,但会读源码的人欺骗不了)

FROM:22@22 (发送者是谁,可串改)

SUBJECT:TEST MAIL SMTP (邮件主题)

helloworld (空一行写邮件正文)

. (正文以.结束)

S: 250 Mail OK queued as smtp3,DdGowLBLAjqD6_JIg1hfBA==.63235S2 1223879684

(服务器接受)

C: noop (空操作,延迟退出时间)

S: 250 OK

C: quit (退出SMTP服务器连接)

S: 221 Bye

------------------------------------------------------------------------------*

SMTP基本发送流程和相关命令

相对于POP3,SMTP的流程和命令更加固定。

与SMTP服务器建立TCP连接.......................服务器地址通常为 smtp.**.com/net 端口25 (记住所有命令以一个CRLF结束)

于服务器握手..................................HELO + 服务器地址名称 + CRLF

AUTH LOGIN....................................请求登录

用户名........................................base64编码的用户名

密码..........................................base64编码的密码

MAIL FROM:<>.................................输入帐户的正确的邮件地址,这里于这帐户信息不一致会导致服务器拒绝

RCPT TO:<>....................................接收者,多个接收者多次调用该命令

DATA..........................................即将输入邮件正文

依次输入TO: ; FROM: ;SUBJECT: ;空一行正文; 隔行以.结束

QUIT..........................................退出连接状态

SMTP客户端的编写

在写SMTP服务端的程序时,完成一个简单的成功发送程序并不困难。按照固定的流程可以很快开发出一个SMTP的客户端程序。但编写一个完全符合标准的邮件也不是那么容易的我认为难点有以下一些:

a)发送的头部是否支持全部的邮件格式要求的字段。通常不包含送有的字段也能成功,但毕竟不规范。

b)boundary的确定。不同服务器会用某种方式自动生成boundary,我们在开发之初可以只固定两类边界,所有邮件都使用,但以后肯定需要改进,他的算法是什么,现在未知。

c)确定SMTP客户端在发送邮件时不同部分采用什么样的编码,编码方式需要自己完成和确定,那么确定编码方式的标准是什么,现在未知。

d)如何确定发送邮件的数据结构。

结束语

我接触POP3和SMTP的时间并不长,了解的知识也仅局限在基础只上。希望我对这两个协议的理解有助于大家对email的学习和以后的程序开发。事实上,现在IMAP协议的采用是一个趋势,他比起POP3协议有更好的功能和更加简洁的命令。但是现在支持IMAP协议并且免费的邮件服务商并不多,而GMAIL可以是一个很好的研究对象。但是连接到GMAIL需要SSL加密协议,开发有一定难度。

以上言论有纰漏之处,希望指出。任何COPY和转载请保留作者原始信息,尊重智力劳动和书写疲累。谢谢。

附件一:邮件源码

*------------------------------------------------------------------------------------------------------------------

Received: from http://biz.doczj.com/doc/5317735533.html, (unknown [220.181.15.66])

by mx27 (Coremail) with SMTP id TcCowLD7EwbzKu9IHYvkEA==.4008S2;

Fri, 10 Oct 2008 18:14:11 +0800 (CST)

Received: from 221.10.25.6 ( 221.10.25.6 [221.10.25.6] ) by

ajax-webmail-wmsvr66 (Coremail) ; Fri, 10 Oct 2008 18:14:12 +0800 (CST)

Date: Fri, 10 Oct 2008 18:14:12 +0800 (CST)

From: zengbenyuan

To: "tommy_mail@http://biz.doczj.com/doc/5317735533.html,"

Message-ID: <8524052.1394071223633652257.JavaMail.coremail@http://biz.doczj.com/doc/5317735533.html,> Subject: Helloworld

MIME-Version: 1.0

Content-Type: multipart/mixed;

boundary="----=_Part_367655_28062751.1223633652250"

X-Originating-IP: [221.10.25.6]

X-Priority: 3

X-Mailer: Coremail Webmail Server Version XT_Ux_snapshot build

080919(6068.1917.1874) Copyright (c) 2002-2008 http://biz.doczj.com/doc/5317735533.html, 126com

X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUUYxn0WfASr-VFAUDa7-sFnT

9fnUUIcSsGvfJTRUUUjckFxVCF77xC6IxKo4kEV4yl1I0EscIYIxCEI4klw4CSwwAawVAC

jsI_Ar4v6c8GOVW06r1DJrWUAwASzI0EjI02j7AqF2xKxwAqx4xG64xvF2IEw4CE5I8CrV

C2j2Wl5I8CrVCF54CYxVAG04kSxc1lYx0E74AGY7Cv6cx26rWlYx0Ec7CjxVAajcxG14v2

6r4j6F4UM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACY4xI67k04243AVC20s07M4IEnf9ElV

AFpTB2q-sK649IAas0WaI_GwAC6xAIw28IcVAK0I8IjxAxMx02cVCv0xWlc2xSY4AK67AK

6r4DMxkI7II2jI8vz4v_Kr0_Gr1UMxCjnVCjjxCrMI8E67x28xkI4xCE0xIEc2x0rwC2zV

AF1VAY17CE14v26r1j6r15MVCEFcxC0VAYjxAxZFUvcSsGvfC2KfnxnUUI43ZEXa7VUeHl

k3UUUUU==

------=_Part_367655_28062751.1223633652250

Content-Type: multipart/alternative;

boundary="----=_Part_367657_22083146.1223633652250"

------=_Part_367657_22083146.1223633652250

Content-Type: text/plain; charset=gbk

Content-Transfer-Encoding: 7bit

Hi Tommy,

This is a mail for testing.

------=_Part_367657_22083146.1223633652250

Content-Type: text/html; charset=gbk

Content-Transfer-Encoding: 7bit

Hi Tommy,

     This is a mail for

testing.

 

------=_Part_367657_22083146.1223633652250--

------=_Part_367655_28062751.1223633652250

Content-Type: text/plain; name="Debian Package.txt"

Content-Transfer-Encoding: base64

Content-Disposition: attachment; filename="Debian Package.txt"

RGViaWFuIFBhY2thZ2U=

------=_Part_367655_28062751.1223633652250--

------------------------------------------------------------------------------------------------------------------------*

SMTP协议发邮件流程

HELO v domain >v CRLF > 用 C++ 发邮件 近段时间,实验室电脑的 IP 频繁地改变,搞得想用远程偷下懒都不行。这时想到的 解决方法有:静态IP,动态域名,自己解决。静态 IP 虽然可以自己指定,但一关机后,与 对方冲突就完了,作罢。免费的动态域名又要手机认证,也作罢。最后只能自己解决。解决 方案是写一个程序不断地检测本机 IP ,如果改变了,就发邮件通知。检测本机 IP 很简单, 就略过。这里介绍下怎样发邮件吧。 发邮件前,需要理解 SMTP(Simple Mail Transfer Protocol) 。 SMTP 是电子邮件从 客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。 SMTP 是请 求/ 响应协议,命令和响应都是基于 ASCII 文本,并以 CR 和 LF 符结束。响应包括一个 表示返回状态的三位数字代码。在 TCP 协议 25 端口监听连接请求。其命令如下: SMTP 命令 命令说明 识 别发送方到接收 SMTP 的一个 HELO 命令 AUTH LOGIN 登陆服务器的命令。在这条命令之后,要发送用 Base64 编 码后的用户名与密码进行登陆 MAIL FROM: v reverse-path >v CRLF>v reverse-path >为发送者地址。 此命令告 诉接收方一个新邮件发送的开始, 并对所有的状态和缓冲区进行初始化。 此命令开始一个邮 件传输处理,最终完成将邮件数据传送到一个或多个邮箱中。

RCPT TO:v forward-path >v CRLF>v forward-path >标识各个邮件接收者的地

利用wireshark分析SMTP、POP3协议实验报告

. .. ... 利用wireshark分析SMTP、POP3协议实验报告

利用wireshark分析SMTP、POP3协议实验报告一、实验目的 利用wireshark抓包,分析SMTP协议和POP3协议容。 二、实验环境 连接Internet的计算机,系统为windows8.1; Foxmail,软件版本为7.2; Wireshark,软件版本为1.10.7。 三、实验过程 1.登陆及接收过程(POP3协议) 1)操作过程 打开wireshark开始俘获。然后打开Foxmail,输入用户名,密码,POP 服务器,SMTP服务器,如下图:

然后点击创建,登陆成功如下图: 然后点击收取,结果如下图: 打开wireshark,停止俘获,并保存(结果“capture_for_emailLogin.pcapng”另附)。 2)结果分析

因为POP3协议默认的传输协议是TCP协议,因此连接服务器要先进行三次握手,如下图: 连接成功,主机向服务器发送明文用户名和密码,如下图: 认证成功,开始接收处理,主机先向服务器发送SATA命令,得到数量: 主机向服务器发送LIST命令,得到每封的大小:

主机向服务器发送UIDL命令,得到这四封的唯一标示符: 最后主机向服务器发送QUIT命令,回话结束: 2.邮寄发送过程(SMTP协议) 1)操作过程 打开wireshark,开始俘获。然后打开Foxmail,点击写,写一封,点发送,如下图:

然后打开wireshark,停止俘获,并保存(结果 “capture_for_emailSend.pcapng”另附)。 2)结果分析 因为SMTP协议是基于TCP协议的,所以要先进行三次握手: 主机向服务器发送EHLO加上主机名(val-pc),服务器响应并回复250,表示服务器可用: 主机向服务器发送发送用户登录命令“AHTU LOGIN”,服务器回复334,表示接受: 因为SMTP要求用户名和密码必须经过64位编码后发送,不接受明文。所以客户端分别向服务器发送编码后的用户名和密码,服务器分别回复334和235表示接受和通过: 客户端先后向服务器发送“MAIL FROM”和“RCPT TO”命令,后面分别接上发件人和收件人的地址。服务器分别回复“250 MAIL OK”,表示接受成功: 接下来客户端向服务器发送命令“DATA”,表示将要向服务器发送正文,服务器回应“354 End data with .”表示同意接收:

SMTP协议的命令和应答

从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP 命令和接收SMTP反馈的应答来完成的。在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响。双方如此反复多次,直至邮件处理完毕。SMTP协议共包含10个SMTP命令,列表如下: SMTP命令命令说明 HELLO<domain><CRLF>识别发送方到接收SMTP的一个HELLO命令 MAILFROM:<reverse-path><CRLF><reverse-path>为发送者地址。此命令告诉接收方一个新邮件发送的开始,并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理,最终完成将邮件数据传送到一个或多个邮箱中。 RCPTTO:<forward-path><CRLF><forward-path>标识各个邮件接收者的地址 DATA<CRLF> 接收SMTP将把其后的行为看作邮件数据去处理,以<CRLF>.<CRLF>标识数据的结尾。 REST<CRLF>退出/复位当前的邮件传输 NOOP<CRLF>要求接收SMTP仅做OK应答。(用于测试) QUIT<CRLF>要求接收SMTP返回一个OK应答并关闭传输。 VRFY<string><CRLF>验证指定的邮箱是否存在,由于安全因素,服务器多禁止此命令。 EXPN<string><CRLF>验证给定的邮箱列表是否存在,扩充邮箱列表,也常禁止使用。 HELP<CRLF>查询服务器支持什么命令 注:<CRLF>为回车、换行,ASCII码分别为13、10(十进制)。 SMTP协议的每一个命令都会返回一个应答码,应答码的每一个数字都是有特定含义的,如第一位数字为2时表示命令成功;为5表失败;3表没有完成。一些较复杂的邮件程序利用该特点,首先检查应答码的首数字,并根据其值来决定下一步的动作。下面将SMTP的应答码列表如下: 应答码说明 501参数格式错误 502命令不可实现 503错误的命令序列 504命令参数不可实现 211系统状态或系统帮助响应 214帮助信息 220<domain>服务就绪 221<domain>服务关闭 421<domain>服务未就绪,关闭传输信道 250要求的邮件操作完成 251用户非本地,将转发向<forward-path> 450要求的邮件操作未完成,邮箱不可用 550要求的邮件操作未完成,邮箱不可用 451放弃要求的操作;处理过程中出错 551用户非本地,请尝试<forward-path> 452系统存储不足,要求的操作未执行

实验10 使用Wireshark分析SMTP和POP3协议

实验十使用Wireshark分析SMTP和POP3协议 一、实验目的 分析SMTP和POP3协议 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。三、实验步骤 大多数电子邮件客户端允许用户撰写电子邮件并将其方到发件箱中,还能发送发件箱中的邮件,接收新邮件到收件箱。大多数用户都知道必须连接到因特网才能发送和接收邮件,但他们可能不知道网络通信的细节。 发送邮件的过程和接收邮件的过程截然不同,它们甚至使用不同的应用层协议。电子邮件客户端通常使用邮件传送协议(Simple Mail Transfer Protocol, SMTP)来发送邮件,并用邮局协议(Post Office Protocol, POP)接收邮件。客户端发送邮件时,通常连接一台独立的本地邮件服务器,并将所有外发的邮件发送到这个服务器而不管接收者的地址。本地邮件服务器将报文放在发送邮件队列中。此时,电子邮件客户端不再涉及邮件的传输,而由本地邮件服务器负责对每个接收者传送邮件。SMTP不仅用于电子邮件客户端和本地邮件服务器之间的数据传输,而且还用于本地邮件服务器和每一个接收者的邮件服务器之间的数据传输。 一旦电子邮件报文到达接收者的邮件服务器,就随同该用户的其他接收邮件报文一起放在邮件队列中,用户可以通过类似的POP这样的协议来获取所有的接收邮件。 1、俘获发送邮件时SMTP分组 (1)启动IE,在IE工具栏中选择“邮件”-> “阅读邮件”,出现Outlook界面,在Outlook中选择“工具”->“选项”->“邮件设置”-> “电子邮件帐户...”,出现“电子邮件帐户”窗口,选择“添加新电子邮件帐户”,单击“下一步”,选择“POP3(P)”,单击“下一步”,将会出现如下界面:

SMTP简单邮件传输协议

一个网络可以由公用互联网上 TCP 可相互访问的主机、防火墙分隔的 TCP/IP 网络上 TCP 可相互访问的主机,及其它 LAN/WAN 中的主机利用非TCP 传输层协议组成。使用 SMTP ,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。 在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。域名服务系统(DNS)的邮件交换服务器可以用来识别出传输邮件的下一跳 IP 地址。 在传输文件过程中使用25号端口 编辑本段协议原理 SMTP-简单邮件传输协议(SimpleMailTransferProtocol),是定义邮件传输的协议,它是基于TCP服务的应用层协议,由RFC0821所定义。SMTP协议规定的命令是以明文方式进行的。为了说明SMTP的工作原理,我们以向163发送邮件为实例进行说明。 在linux环境下,使用"telnet smtp.163. com 25"连接smtp.163. com 的25号端口(SMTP的标准服务端口);在windows下使用telnet程序,远程主机指定为smtp.163. com,而端口号指定为25,然后连接smtp.163. com:交互过程如下: SMTP [lix@nslix]$telnet smtp.163. com 25 220 163 .com Anti-spam GT for Coremail System (163com[071018]) HELO smtp.163 .com 250 OK auth login 334 dXNlcm5hbWU6 USER base64加密后的用户名 334 UGFzc3dvcmQ6 PASS base64加密后的密码 235 Authentication successful MAILFROM:XXX@163 .COM 250 Mail OK RCPTTO:XXX@163 .COM

SMTP与POP协议简析

SMTP、POP协议简析

作者:李鹏博时间:2016/06

1.SMTP协议与POP协议说明 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 POP(Post Office Protocol)即邮局协议,用于电子邮件的接收。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。本文只介绍POP3。 2.SMTP协议简析 通过抓包,可以看到清晰的服务器与客户端的交流过程。如下图。

如上图,将整个流程分为三部分:握手阶段、认证阶段、发送数据阶段。其中TCP三次握手在上图中未体现,握手成功后,进入认证阶段。 SMTP命令字说明 HELO客户端为标识自己的身份而发送的命令(通常带域名) EHLO使服务器可以表明自己支持扩展简单邮件传输协议(ESMTP) 命令。 MAIL FROM标识邮件的发件人;以MAIL FROM: 的形式使用。 RCPT TO标识邮件的收件人;以RCPT TO: 的形式使用。 DATA客户端发送的、用于启动邮件内容传输的命令。 RSET使整个邮件的处理无效,并重置缓冲区。 QUIT终止会话。 对于服务器的每个回复,都有一个返回码,这个返回码标志着上次的请求操作完成状态。如果第一个数字是2表示操作成功;3表示操作正在进行;5表示操作失败。 握手阶段 认证阶段 握手成功后,邮件服务器(上面示例是163的邮件服务器)会发送欢迎连接信息。然后是客户端HELO(或EHLO),向服务器标识用户身份;接下来进行认证操作。认证成功后,客户端告诉服务器这封邮件从哪个邮箱来,到哪个邮箱去,mail from只有一个,但是recpt to 后面可以跟多个收件人地址。成功后,客户端请求发送邮件数据。 数据发送阶段 服务器回复DATA命令后,会有一个结束符说明。如上图,就是以.结束邮件DATA。其中即为“\r\n”;

利用wireshark分析SMTP、POP3协议实验报告

利用wireshark分析SMTP、POP3协议实验报告

利用wireshark分析SMTP、POP3协议实验报告 一、实验目的 利用wireshark抓包,分析SMTP协议和POP3协议内容。 二、实验环境 连接Internet的计算机,系统为windows8.1; Foxmail,软件版本为7.2; Wireshark,软件版本为1.10.7。 三、实验过程 1.邮箱登陆及接收过程(POP3协议) 1)操作过程 打开wireshark开始俘获。然后打开Foxmail邮箱,输入用户名,密码,POP 服务器,SMTP服务器,如下图: 然后点击创建,登陆成功如下图:

然后点击收取,结果如下图: 打开wireshark,停止俘获,并保存(结果“capture_for_emailLogin.pcapng”另附)。 2)结果分析 因为POP3协议默认的传输协议是TCP协议,因此连接服务器要先进行三次握手,如下图:

连接成功,主机向服务器发送明文用户名和密码,如下图: 认证成功,开始接收处理,主机先向服务器发送SATA命令,得到邮件数量: 主机向服务器发送LIST命令,得到每封邮件的大小:

主机向服务器发送UIDL命令,得到这四封邮件的唯一标示符: 最后主机向服务器发送QUIT命令,回话结束: 2.邮寄发送过程(SMTP协议) 1)操作过程 打开wireshark,开始俘获。然后打开Foxmail,点击写邮件,写一封邮件,点发送,如下图: 然后打开wireshark,停止俘获,并保存(结果“capture_for_emailSend.pcapng”另附)。 2)结果分析

基于POP3与SMTP协议的邮件收发程序的开发

一、设计思想 电子邮件指用电子手段传送信件、单据、资料等信息的通信方法。电子邮件综合了电话通信和邮政信件的特点,它传送信息的速度和电话一样快,又能象信件一样使收信者在接收端收到文字记录。电子邮件系统又称基于计算机的邮件报文系统。它承担从邮件进入系统到邮件到达目的地为止的全部处理过程。电子邮件不仅可利用电话网络, 而且可利用任何通信网传送。在利用电话网络时, 还可利用其非高峰期间传送信息,这对于商业邮件具有特殊价值。由中央计算机和小型计算机控制的面向有限用户的电子系统可以看作是一种计算机会议系统。 电子邮件的工作过程遵循客户- 服务器模式。每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮局服务器(SMTP服务器)发送。邮局服 务器识别接收者的地址,并向管理该地址的邮件服务器(POP3服务器)发送消息。 一个邮件系统的传输包含用户代理User Agent 传输代理TransferAgent 及接受代理DeliveryAgent 三大部分。 用户代理是一个用户发信和收信的程序, 负责将电子邮件按照一定的标准包装,然后送至邮件服务器, 或由邮件服务器收回。传输代理负责信件的交换和传输。将信件传送至适当的邮件主机, 再由接受代理将信件分发至不同的邮件信箱。传输代理必须要能够接受用户邮件程序送来的信件,解读收信人的地址,根据SMTP协议将它正确无误地传递到目的地。现在一般的传输代理已采用Sendmail 程序完成工作。电子邮件到达邮件主机后, 在经接收代理POP协议被用户读取至自己的主机。 电子邮件在发送与接收过程中都要遵循SMTP POP3等协议,这些协议确保了电子邮件 在各种不同系统之间的传输。其中,SMTP负责电子邮件的发送,而POP3则用于接收In ternet 上的电子邮件。 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/ IP协议族, 它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器, 我们就可以把E—mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP!务器则是遵循SMTP 协议的发送邮件服务器,用来发送或中转你发出的电子邮件。 POP3(Post Office Protocol 3)即邮局协议,目前已发展到第三版,称POP3它规 定怎样将个人计算机连接到Internet 的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议 的接收邮件服务器,用来接收电子邮件的。总的来说POP3协议是让用户把服务器上的信收 到本地来所需要的一种协议。 本程序为一个基于SMTP和POP3协议的小型EMAIL收发程序,简单的实现了邮件的收发功能。

Wireshark抓包分析资料报告POP3和SMTP协议详情

Wireshark抓包分析POP3和SMTP协议 一、实验目的 1.初步掌握Wireshark的使用方法,熟悉抓包流程; 2.通过对Wireshark抓包实例进行分析,加强对POP3协议和 SMTP协议的理解; 3.培养动手实践能力和自主学习自主探究的精神。 二、实验要求 利用Wireshark软件抓包,得到登录的信息和发送的信息,并根据所抓包对POP3协议和SMTP协议进行分析。 三、实验环境 1.系统环境:Windows 8专业版 2.接收:Foxmail 6正式版 3.Wireshark:V1. 4.9 四、实验过程 (一)登录及接收过程(POP3协议) 1.POP3协议简介[1] POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的服务器进行收发的

协议。它是因特网电子的第一个离线协议标准,POP3协议允许用户从服务器上把存储到本机主机上,同时根据客户端的操作删除或保存在服务器上的。而POP3服务器则是遵循POP3协议的接收服务器,用来接收电子的。POP3协议是TCP/IP协议族中的一员,由RFC 1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子。 2.实验过程 (1)准备工作 ●申请一个126 ●安装并配置Foxmail,将接收和发送的服务器分别设置 为POP3服务器和SMTP服务器 ●在安装好的Foxmail上添加申请到的126账户

添加后的信息 (2)打开Wireshark软件,选择正在联网的网卡,开始抓包。 (3)打开Foxmail,选择账号登录,点击左上角收取,开始连接服务器。

SMTP协议原理

SMTP协议原理 SMTP协议原理 SMTP-简单邮件传输协议(SimpleMailTransferProtocol),是定义邮件传输最常用的协议,它是基于TCP服务的应用层协议,由RFC821所定义。SMTP协议规定的命令是以明文方式进行的。为了说明SMTP的工作原理,我们以向163发送邮件为实例进行说明。 在linux环境下,使用"telnet smtp.163. com 25"连接smtp.163. com的25号端口(SMTP的标准服务端口);在windows下使用telnet程序,远程主机指定为smtp.163. com,而端口号指定为25,然后连接smtp.163. com:交互过程如下:[lix@nslix]$telnet smtp.163. com 25 220 163 .com Anti-spam GT for Coremail System (163com[071018]) HELO smtp.163 .com 250 OK auth login 334 dXNlcm5hbWU6 USER base64加密后的用户名 334 UGFzc3dvcmQ6 PASS base64加密后的密码 235 Authentication successful MAILFROM:XXX@163 .COM

250 Mail OK RCPTTO:XXX@163 .COM 250 Mail OK DATA 354 End data with . QUIT 250 Mail OK queued as smtp5,D9GowLArizfIFTpIxFX8AA==.41385S2 HELO是客户向对方邮件服务器发出的标识自己的身份的命令,这里假设发送者为ideal;MAILFROM命令用来表示发送者的邮件地址;RCPTTO:标识接收者的邮件地址,这里表示希望发送邮件给XXX@163. COM,如果邮件接收者不是本地用户,例如RCPTTO:ideal,则说明希望对方邮件服务器为自己转发(Relay)邮件,若该机器允许转发这样的邮件,则表示该邮件服务器是OPENRELAY的,否则说明该服务器不允许RELAY;DATA表示下面是邮件的数据部分,输入完毕以后,以一个"."开始的行作为数据部分的结束标识;QUIT表示退出这次会话,结束邮件发送。 这就是一个简单的发送邮件的会话过程,其实当使用outlookexpress等客户软件发送时,后台进行的交互也是这样的,当然,SMTP协议为了处理复杂的邮件发送情况如附件等等,定义了很多的命令及规定,具体可以通过阅读RFC821来获得。当你的一个朋友向你发送邮件时,他的邮件服务器和你的邮件服务器通过SMTP协议通信,将邮件传递给你邮件地址所指示的邮件服务器上(这里假设你的本地邮件服务器是Linux系统),若你通过telnet协议直接登录到邮件服务器上,则可以使用mail 等客户软件直接阅读邮件,但是若你希望使用本地的MUA(MailUserAgent,如

SMTP协议RFC文档中文版

RFC821 简单邮件传输协议(SMTP) (RFC821 SIMPLE MAIL TRANSFER PROTOCOL) 目录 1. 介绍 2 2. SMTP模型 3 3. SMTP过程 4 3.1. MAIL 4 3.2. 转发 5 3.3. 确认和扩展 6 3.4. 发送信件(mailing)和获得信件(sending) 7 3.5. 打开和关闭7 3.6. 转发 8 3.7. 域9 3.8. 改变角色9 4. SMTP说明9 4.1. SMTP命令9 4.1.1. 命令语法9 4.1.2. COMMAND语法格式13 4.2. SMTP响应15 4.3. 命令和应答序列16 4.4. 状态图17 4.5. 详细内容18 4.5.1. 最小实现18 4.5.2. 透明性19 4.5.3. 大小19 附录 A TCP传输服务19 附录 B NCP传输服务20 附录 C NITS 20 附录 D X.25传输服务 20 附录 E 应答码构成方法20 附录 F 一些例子22 参考资料36 1. 介绍

简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。附录A,B,C和D描述了不同传送服务下SMTP的使用。在名词表中还定义了本文档中使用的术语。 SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或IPCE)不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网络上的主机接力式传送。 2. SMTP模型 SMTP设计基于以下通信模型:针对用户的邮件请求,发送SMTP建立与接收SMTP之间建立一个双向传送通道。接收SMTP可以是最终接收者也可以是中间传送者。SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方面传送。 一旦传送通道建立,SMTP发送者发送MAIL命令指明邮件发送者。如果SMTP接收者可以接收邮件则返回OK 应答。SMTP发送者再发出RCPT命令确认邮件是否接收到。如果SMTP接收者接收,则返回OK应答;如果不能接收到,则发出拒绝接收应答(但不中止整个邮件操作),双方将如此重复多次。当接收者收到全部邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回OK应答。 SMTP提供传送邮件的机制,如果接收方与发送方连接在同一个传送服务下时,邮件可以直接由发送方主机传送到接收方主机;或者,当两者不在同一个传送服务下时,通过中继SMTP服务器传送。为了能够对SMTP服务器提供中继能力,它必须拥有最终目的主机地址和邮箱名称。 MAIL命令参数是回复路径,它指定邮件从何处来;而RCPT命令的参数是转发路径的,它指定邮件向何处去。向前路径是源路径,而回复路径是返回路径(它用于发生错误时返回邮件)。 当同一个消息要发往不同的接收者时,SMTP遇到了向不同接收者发送同一份数据的复制品的问题,邮件命令和应答有一个比较奇怪的语法,应答也有一个数字代码。在下面,例子中可以看到哪些使用实际的命令和应答。完整的命令和应答在第四节。 命令与应答对大小写不敏感,也就是说,命令和应答可以是大写,小写或两者的混合,但这一点对用户邮件名称却不一定是对的,因为有的主机对用户名大小写是敏感的。这样SMTP实现中就将用户邮箱名称保留成初始时的样子,主机名称对大小写不敏感。 命令与应答由ASCII字母表组成,当传送服务提供8位字节传送通道,每7位字符正确传送,而最高位被填充为0。当指定一般的命令或应答格式后,参数会由一些类似于语言的字符串表示出来,如""或"",这里尖括号表示这是一种类似于语言的变量。 3. SMTP过程 本节提供了SMTP中的一些过程。头一个说明的是基本发送过程(定义为发送操作)。下来描述向前传送邮件,确认邮箱名称和扩展邮件列表,发送到终端和打开关闭交换。在本节的最后是对中断,邮件域的说明。本节的例子只是一部分命令和应答的序列,完整的例子见附录F。 3.1. MAIL 在SMTP发送操作中有三步,操作由MAIL命令开始给出发送者标识。一系列或更多的RCPT命令紧跟其后,给出了接收者信息,然后是DATA命令列出发送的邮件内容,最后邮件内容指示符确认操作。

POP3与SMTP协议

POP3协议 POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC 1939 定义(见 Reference/rfc1939 pop3.html)。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。 使用telnet 连接pop3 最直观的了解什么是POP3,我觉得采用telnet的方式用pop3连接到邮件服务器,进行邮件的接收是最有效的。 打开终端,(C:client, S:Server) C: telnet http://biz.doczj.com/doc/5317735533.html, 110 (用telnet方式连接163的pop3服务器,pop3协定端口为110) S: Trying 202.108.5.100... Connected to http://biz.doczj.com/doc/5317735533.html,. Escape character is '^]'. +OK Welcome to coremail Mail Pop3 Server (163coms[3d8c1fa079729fb6acc588e66d30360es]) (服务器通常开头返回+OK表示正确的回应,+ERR表示所发命令有误) C: USER ***** (***处输入你的邮件用户名) S: +OK core mail (表示接受) C: PASS ***** (***处输入密码,这里都是明文显示) S: +OK 5 message(s) [9782 byte(s)] (这里表示服务器接受该帐户,服务器上对应有5封邮件,总大小9782个字节) C:LIST (LIST 命令列出每一封邮件的信息,己每封邮件对应的ID 号和大小) S: +OK 5 9782 1 1298 2 1311 3 1224 4 1312 5 4637 . C: TOP 1 0 (格式 TOP num 0, num代表邮件ID号,返回该邮件的头部信息) S:+OK 1298 octets (服务器接受) Received: from http://biz.doczj.com/doc/5317735533.html, (unknown [221.10.25.6])

SMTP与POP协议简析

SMTP、POP协议简析 作者:李鹏博 时间:2016/06

1.SMTP协议与POP协议说明 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 POP(Post Office Protocol)即邮局协议,用于电子邮件的接收。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。本文只介绍POP3。 2.SMTP协议简析 通过抓包,可以看到清晰的服务器与客户端的交流过程。如下图。 如上图,将整个流程分为三部分:握手阶段、认证阶段、发送数据阶段。其中TCP三次握手在上图中未体现,握手成功后,进入认证阶段。 SMTP命令字说明 HELO客户端为标识自己的身份而发送的命令(通常带域名) EHLO使服务器可以表明自己支持扩展简单邮件传输协议(ESMTP) 命令。

MAIL FROM标识邮件的发件人;以MAIL FROM: 的形式使用。 RCPT TO标识邮件的收件人;以RCPT TO: 的形式使用。 DATA客户端发送的、用于启动邮件内容传输的命令。 RSET使整个邮件的处理无效,并重置缓冲区。 QUIT终止会话。 对于服务器的每个回复,都有一个返回码,这个返回码标志着上次的请求操作完成状态。如果第一个数字是2表示操作成功;3表示操作正在进行;5表示操作失败。 握手阶段 认证阶段 握手成功后,邮件服务器(上面示例是163的邮件服务器)会发送欢迎连接信息。然后是客户端HELO(或EHLO),向服务器标识用户身份;接下来进行认证操作。认证成功后,客户端告诉服务器这封邮件从哪个邮箱来,到哪个邮箱去,mail from只有一个,但是recpt to 后面可以跟多个收件人地址。成功后,客户端请求发送邮件数据。 数据发送阶段 服务器回复DATA命令后,会有一个结束符说明。如上图,就是以.结束邮件DATA。其中即为“\r\n”; 数据内容规格一般是按照MIME协议生成,具体参见《MIME协议的内容分析及解析说明》。 数据发送完成后客户端以QUIT命令主动退出。邮件发送完成,流程结束。 3.POP协议简析 POP命令字说明 USER <用户名> 用户登录。 PASS <密码> 发送用户密码。 STAT返回邮箱列表(邮件数量、字节)。 LIST 返回邮件数量和每个邮件的大小。 UIDL 返回邮件的唯一标识符,pop3会话的每个标识符都将是唯一的。 RETR <邮件编号> 传回指定的邮件,以只有一个“.”号的行结束。 QUIT关闭连接。 服务器命令回应的第一行以“+OK”或“-ERR”(+OK指成功,-ERR指失败)指出相应的操作状态是成功还是失败。

利用SMTP协议收发邮件

利用SMTP协议收发邮件 摘要 电子邮件可以达成发信人和收信人之间的信息交互。SMPT协议用来进行邮件的发送,本文分析了SMTP协议的目的意义和通信模型, 详细说明了它的命令和应答程序。并通过直接使用SMTP协议命令而在程序中实现电子邮件传送的方法。并在此基础上结合VC++ 6. 0的编程实现了接收和发送电子邮件。 关键字:SMTP协议;收发邮件;编程

目录 摘要 (1) 第一章背景知识概述 (3) 1.1 电子邮件 (3) 1.2 电子邮件体系结构和服务功能 (3) 第二章SMTP协议 (4) 2.1 SMTP协议目的及意义 (4) 2.2 SMTP协议工作原理 (4) 2.3 SMTP协议的命令和应答 (5) 第三章VC++6.0 中实现收发电子邮件 (6) 3.1 发送邮件类SMTPMail (6) 3.1.1 主要函数功能介绍 (6) 3.1.2 邮件发送程序 (7) 3.2 接收邮件 (9) 3.2.1 初始化MAPI (9) 3.2.2阅读电子邮件 (10) 3.2.3 读取电子邮件程序 (10) 第四章结论与心得体会 (11) 4.1结论 (11) 4.2 心得体会 (11) 参考文献 (11)

第一章背景知识概述 1.1电子邮件 电子邮件(E-mail,又称电子函件、电邮或邮件)是指通过互联网进行书写、发送和接收信件,目的是达成发信人和收信人之间的信息交互。电子邮件,electronic mail,简称 E-mail,标志是@,,又称电子信箱、电子邮政,电子邮件指用电子手段传送信件、单据、资料等信息的通信方法,通过网络的电子邮件系统,用户可以用低廉的价格、以快速的方式,与任何一个网络用户联系,这些电子邮件可以是文字、图象、声音等各种方式。 1.2电子邮件体系结构和服务功能 电子邮件系统主要分为两个子系统: 服务器系统和客户端系统。服务器系统的主要功能是实现电子邮件在Internet中的传输, 客户端系统的主要功能是发送电子邮件和接收电子邮件。电子邮件的工作原理遵循客户/ 服务器模式, 电子邮件的发送要涉及到发送方和接受方, 发送方构成客户端, 而接收方则为服务器。当发送方编辑好一份电子邮件。依照收件人的地址将其发送出去; 接收方服务器收到电子邮件后, 先将其存放在电子邮箱中, 并告知收件人有新邮件到来。发送方的主机与接收方的邮件服务器直接相连。 图1-1 SMTP交互命令模型 Figure. 1-1 SMTP command interaction model

SMTP及POP3协议分析

网络协议分析与设计实验报告 实验名称:实验六SMTP及POP3协议分析 班级:姓名:学号: 实验地点:日期:2012年10 月20 日 一、实验目的: 1.掌握SMTP协议和POP协议的工作原理和工作过程 2.掌握SMTP协议和POP协议的常用命令 二、实验环境: 1.联网并运行SimpleNPTS软件的PC机 2.已配置好的SMTP和POP3服务器 3.安装了邮件客户端程序(如Outlook Express)的工作站 三、实验内容和要求: 1、捕获并分析SMTP协议工作过程中发送和接收的报文 2、捕获并分析POP3协议工作过程中发送和接收的报文 3、在与邮件服务器建立的TCP连接上发送SMTP和POP3命令,实现邮件的发送和接收 4、构造并发送SMTP报文 5、构造并发送POP3报文 四、实验步骤: 1、开启网络协议分析软件,设置过滤器为只捕获SMTP和POP3协议报文。 2、在一个支持SMTP发送邮件、POP3接收邮件的邮件服务器上申请一个邮箱,然后按照已 申请的邮箱信息对邮件客户端软件进行配置。 3、使用邮件客户软件创建并发送一封邮件,利用网络协议软件捕获并分析SMTP报文和 SMTP服务器的响应报文。 4、使用邮件客户软件从自己的邮箱中接收邮件,利用网络协议软件捕获并分析POP报文和 POP3服务器的响应报文。 5、利用TCP连接工具与SMTP服务器建立TCP连接,然后在该连接上使用SMTP命令来发 送邮件。捕获并分析该过程中发送和接收的SMTP报文。 6、利用TCP连接工具与POP3服务器建立TCP连接,然后在该连接上使用POP3命令来接 收邮件。捕获并分析该过程中发送和接收到的POP3报文。 7、编辑并发送POP3报文,以实现登录到POP3服务器。

计算机网络应用 SMTP协议

计算机网络应用SMTP协议 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一种电子邮件协议,它既具有客户端(发送方)发送邮件的功能,又具有服务器(接收方)接收邮件的功能。SMTP 协议允许将电子邮件从一个计算机邮件服务器发送到另一个计算机邮件服务器,并且SMTP 服务器接收本地用户发送的邮件,以便将其传输到互联网中其他邮件服务器上。 在互联网中,大多数计算机系统通过本地邮件系统服务器在本地按路径发送电子邮件。SMTP发送程序从输出邮件队列中得到邮件报文,通过多个TCP连接将邮件报文传输到目标主机的25号端口上。在发送过程中,SMTP接收程序必须能够证实本地邮件目的地址,并处理各种差错,包括传输差错以及没有足够接收空间等。 SMTP发送程序对报文的作用直到SMTP接收程序指示传输完成才结束,因此SMTP协议的作用范围仅限于SMTP发送程序和SMTP接收程序之间的对话过程。SMTP协议的主要功能是传送报文,为了保证正确传送报文,SMTP协议规定了14条命令和21种响应信息。其中,每条命令由一行文本组和四个字母的命令组成;而每一种响应信息由一个三位数据代码和简单的文字说明组成。下面介绍SMTP协议通信过程中,各阶段主要用到的命令和响应信息。 1.建立连接 邮件发送方将需要发送的邮件发送到邮件缓存中,SMTP发送程序将每隔一定时间对邮件缓存进行扫描。如果缓存有未发送的电子邮件,则使用SMTP程序端口号与目的计算机的SMTP服务器建立连接。 建立连接后,发送方将发送“220 Service ready(服务就绪)”的信息,并向SMTP服务器发送用来标识自己的HELLO命令。当接收方的SMTP程序接收到发送方所发送的信息后,则返回响应信息“250 OK(一切正常)”,以便接收发送方SMTP发送程序的身份标识。如果接收方的邮件服务器不可用,则返回响应信息“421 Service not available(服务不可用)”。2.传输邮件 当连接建立成功后,SMTP发送程序将向SMTP接收程序发送邮件报文信息。邮件报文传送包括以下三个逻辑阶段: ●用一个EAIL命令标识出邮件报文的发送方。例如,MAIL FROM: 。 ●用一个或者多个RCPT命令标识该邮件报文的接收方。例如,RCPT TO: <收信人电子 邮箱地址>。 ●用一个DATA命令标识该邮件报文的内容。 发送MAIL命令后,如果SMTP服务器已经做好接收邮件的准备,则返回响应信息“250 OK(一切正常)”。否则,返回有关无法接收邮件原因的响应信息,例如451(处理时出错)、452(存储空间不够)、500(命令无法识别)等。 RCPT命令标识邮件接收方的电子邮箱地址,多次使用该命令能够为邮件指定多个接收者,并且每个RCPT命令都会返回一个单独的响应信息。例如“550 No such user here(无此用户)”,即不存在此电子邮箱地址。RCPT命令的作用是:先检测SMTP接收服务器是否做好接收邮件的准备,然后在进行邮件传输。 3.关闭连接 邮件发送完毕后,发送方SMTP服务器程序将发送QUIT命令。当接收方SMTP服务器程序返回响应信息“211(服务关闭)”时,表明接收方SMTP服务器程序同意关闭TCP连接。

SMTP及POP3协议分析

网络协议分析与设计实验报告 实验名称: 实验六SMTP及POP3协议分析 班级: 姓名: 学号: 实验地点: 日期: 2012年10 月20 日 一、实验目的: 掌握SMTP协议和POP协议的工作原理和工作过程 掌握SMTP协议和POP协议的常用命令 二、实验环境: 联网并运行SimpleNPTS软件的PC机 已配置好的SMTP和POP3服务器 安装了邮件客户端程序(如Outlook Express)的工作站 三、实验内容和要求: 1、捕获并分析SMTP协议工作过程中发送和接收的报文 2、捕获并分析POP3协议工作过程中发送和接收的报文 3、在与邮件服务器建立的TCP连接上发送SMTP和POP3命令,实现邮件的发送和接收 4、构造并发送SMTP报文 5、构造并发送POP3报文

四、实验步骤: 开启网络协议分析软件,设置过滤器为只捕获SMTP和POP3协议报文。 在一个支持SMTP发送邮件、POP3接收邮件的邮件服务器上申请一个邮箱,然后按照已申请的邮箱信息对邮件客户端软件进行配置。 使用邮件客户软件创建并发送一封邮件,利用网络协议软件捕获并分析SMTP报文和SMTP 服务器的响应报文。 使用邮件客户软件从自己的邮箱中接收邮件,利用网络协议软件捕获并分析POP报文和POP3服务器的响应报文。 利用TCP连接工具与SMTP服务器建立TCP连接,然后在该连接上使用SMTP命令来发送邮件。捕获并分析该过程中发送和接收的SMTP报文。 利用TCP连接工具与POP3服务器建立TCP连接,然后在该连接上使用POP3命令来接收邮件。捕获并分析该过程中发送和接收到的POP3报文。 编辑并发送POP3报文,以实现登录到POP3服务器。 五、实验结果与分析(含程序、数据记录及分析和实验总结等): 1、SMTP报文是如何封装的?邮件客户端软件在发送邮件时,向SMTP服务器发送了哪些SMTP报文?SMTP服务器的响应信息是什么?请列出上述SMTP报文和SMTP服务器的响应信息。 依次封装在tcp报文的数据区域,ip数据包的数据区域,以太网帧的数据区域。 三次握手建立连接 00 0F E2 45 B9 C2 00 E5 7C 07 DF 45 08 00 45 00 00 40 CE F2 40 00 40 06 79 87 0A 84 FE 9F DC B5 0C 65 08 B7 00 6E 93 9D 52 22 00 00 00 00 B0 02 FF FF 54 DB 00 00 02 04 05 B4 01 03 03 03 01 01 08 0A 00 00 00 00 00 00 00 00 01 01 04 02 0C 2、POP3报文是如何封装的?在使用邮件客户端软件接收邮件时,向POP3服务器发送了哪些POP报文?POP3服务器的响应信息是什么?请列出上述POP3报文和POP3服务器的响应信息。 依次封装在tcp报文的数据区域,ip数据包的数据区域,以太网帧的数据区域。 三次握手建立连接 00 E5 7C 07 DF 45 00 0F E2 45 B9 C2 08 00 45 00 00 34 00 00 40 00 35 06 53 86 DC B5 0C 65 0A 84 FE 9F 00 6E 08 B7 6B 9C 45 4F 93 9D 52 23 80 12 16 D0 C6 21 00 00 02 04 05 B4 01 01 04 02 01 03 03 07 00 3、给出利用TCP连接工具与SMTP/POP3服务器建立TCP连接后,利用SMTP/POP3命令发送和接收电子邮件时,使用的SMTP/POP3命令和服务器的相应响应,并对这个过程中发送和接收的报文进行解释。 00 E5 7C 07 DF 45 00 0F E2 45 B9 C2 08 00 45 00 00 34 00 00 40 00 35 06 53 86 DC B5 0C 65 0A 84

相关主题