使用smtp协议读取邮件Word格式.docx
《使用smtp协议读取邮件Word格式.docx》由会员分享,可在线阅读,更多相关《使用smtp协议读取邮件Word格式.docx(4页珍藏版)》请在冰豆网上搜索。
1.1电子邮件.....................................................................................................3
1.2电子邮件体系结构和服务功能.................................................................3
第二章smtp协议..................................................................................................4
2.1smtp协议目的及意义...............................................................................4
2.2smtp协议工作原理...................................................................................4
2.3smtp协议的命令和应答...........................................................................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,又称电子函件、电邮或邮件)是指通过互联网进行书写、发送和接收信件,目的是达成发信人和收信人之间的信息交互。
电子邮件,electronicmail,简称e-mail,标志是@,,又称电子信箱、电子邮政,电子邮件指用电子手段传送信件、单据、资料等信息的通信方法,通过网络的电子邮件系统,用户可以用低廉的价格、以快速的方式,与任何一个网络用户联系,这些电子邮件可以是文字、图象、声音等各种方式。
1.2电子邮件体系结构和服务功能
电子邮件系统主要分为两个子系统:
服务器系统和客户端系统。
服务器系统的主要功能是实现电子邮件在internet中的传输,客户端系统的主要功能是发送电子邮件和接收电子邮件。
电子邮件的工作原理遵循客户/服务器模式,电子邮件的发送要涉及到发送方和接受方,发送方构成客户端,而接收方则为服务器。
当发送方编辑好一份电子邮件。
依照收件人的地址将其发送出去;
接收方服务器收到电子邮件后,先将其存放在电子邮箱中,并告知收件人有新邮件到来。
发送方的主机与接收方的邮件服务器直接相连。
图1-1smtp交互命令模型
Figure.1-1smtpcommandinteractionmodel
第二章smtp协议
2.1smtp协议目的及意义
smtp(simplemailtransferprotocol)即简单邮件传输协议,是一种提供可靠且有效电子邮件传输的协议。
smtp是建立在Ftp文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供与来信有关的通知。
smtp目前已是事实上的在internet传输smtp服务器,需要使用mx(mailexchange)dns。
smtp提供一种可靠的有效的传送机制,它用于传送电子邮件。
smtp服务的意义是在smtp转发的邮件中包括信封和内容这两种东西。
内容是由两部分组成的,一部分是信头,一部分是信体,信头是由一个个的域/值对(一个域,一个值)组成的,如果信体有结构的话,它的结构是以mime构造的。
2.2smtp协议工作原理
smtp是工作在两种情况下:
一是电子邮件从客户机传输到服务器:
二是从某一个服务器传输到另一个服务器。
smtp也是个请求/响应协议,命令和响应都是基于ascⅡ文本,并以cR和lF符结束。
响应包括一个表示返回状态的三位数字代码。
smtp在tcp协议25号端口监听连续请求。
smtp连接和发送过程如下:
1)建立tcp连接。
2)客户端发送hello命令以标识发件人自己的身份,然后客户端发送mail命令;
服务器端正希望以ok作为响应,表明准备接收。
3)客户端发送Rcpt命令,以标识该电子邮件的计划接收人;
服务器端则表示是否愿意为收件人接收邮件。
4)协商结束,发送邮件,用命令data发送。
5)以“.”号表示结束输入内容一起发送出去,结束此次发送,用quit命令退出。
smtp的实现模型如下图所示。
图2-1smtp的实现模型
Figure2-1smtpimplementationmodel
2.3smtp协议的命令和应答
smtp邮件数据包括三部分:
命令、应答和报文数据。
smtp命令用于从客户进程向服务器进程发送服务请求;
smtp应答用于使客户进程知道服务器进程的接收状态,以确保在邮件传输过程中对话同步;
smtp报文数据包含报文的正文内容由任意长度的ascii字符序列组成,以单行的据点作为结束标志。
命令与应答必须是一对一的交互传输过程。
smtp的命令集如下表所示。
表2-1smtp的命令集
table2-1smtpcommandset
篇二:
wireshark抓包分析pop3和smtp协议
wireshark抓包分析pop3和smtp协议
一、实验目的
1.初步掌握wireshark的使用方法,熟悉抓包流程;
2.通过对wireshark抓包实例进行分析,加强对pop3协议和smtp协议的理解;
3.培养动手实践能力和自主学习自主探究的精神。
二、实验要求
利用wireshark软件抓包,得到邮箱登录的信息和发送邮件的信息,并根据所抓包对pop3协议和smtp协议进行分析。
三、实验环境
1.系统环境:
windows8专业版
2.邮件接收:
Foxmail6正式版
3.wireshark:
V1.4.9
四、实验过程
(一)邮箱登录及邮件接收过程(pop3协议)
1.pop3协议简介[1]
pop3(postofficeprotocol3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮箱服务器进行收发邮件的协议。
它是因特网电子邮件的第一个离线协议标准,pop3协议允许用户从服务器上把邮件存储到本机主机上,同时根据客户端的操作删除或保存在邮箱服务器上的邮件。
而pop3服务器则是遵循pop3协议的接收邮件服务器,用来接收电子邮
件的。
pop3协议是tcp/ip协议族中的一员,由RFc1939定义。
本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
2.实验过程
(1)准备工作
申请一个126邮箱
安装并配置Foxmail,将接收和发送邮件的服务器分别设置为pop3服务器和smtp服务器
在安装好的Foxmail上添加申请到的126邮箱账户
添加后的邮箱信息
(2)打开wireshark软件,选择正在联网的网卡,开始抓包。
(3)打开Foxmail,选择邮箱账号登录,点击左上角收取,邮
箱开始连接服务器。
(4)关闭Foxmail,wireshark停止抓包,找到包的位置,可
以发现账号和密码都被找出来了。
3.分析过程
通过查找资料可知,主机向pop3服务器发送的
命令采用命
令行形式,用ascii码表示。
服务器响应是由一个单独的命令行组成或多个命令行组成,响应第一行以ascii文本+ok或-eRR(ok指成功,-eRR指失败)指出相应的操作状态是成功还是失败。
由上述报文可以分析出如下过程:
因为pop3协议默认的传输协议时tcp协议[2],因此连接服务器要先进行三次握手
主机需要提供账号和密码,并等待服务器确认
认证成功以后,开始进入处理阶段
主机向服务器发送命令码stat,服务器向主机发回邮箱的统计资料,包括邮件总数和总字节数(3个邮件,共17393个字节)
主机向服务器发送命令码uidl,服务器返回每个
邮件的唯
一标识符
三个邮件的标识符
主机向服务器发送命令码list,服务器返回邮件数量和每个邮件的大小
三个邮件的大小分别是14417字节、882字节、2096字节
主机向服务器发送命令码quit,终止会话。
进一步分析可得到如下信息(以主机向服务器发送密码为例)本机的端口号为65500服务器端口号为110
本机和服务器mac地址
篇三:
smtp协议发邮件流程
用c++发邮件
近段时间,实验室电脑的ip频繁地改变,搞得想用远程偷下懒都不行。
这时想到的解决方法有:
静态ip,动态域名,自己解决。
静态ip虽然可以自己指定,但一关机后,与对方冲突就完了,作罢。
免费的动态域名又要手机认证,也作罢。
最后只能自己解决。
解决方案是写一个程序不断地检测本机ip,如果改变了,就发邮件通知。
检测本机ip很简单,就略过。
这里介绍下怎样发邮件吧。
发邮件前,需要理解smtp(simplemailtransferprotocol)。
smtp是电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。
smtp是请求/响应协议,命令和响应都是基于ascii文本,并以cR和lF符结束。
在tcp协议25端口监听连接请求。
其命令如下:
smtp命令命令说明
helo<domain><cRlF>识别发送方到接收smtp的一个helo命令
authlogin登陆服务器的命令。
在这条命令之后,要发送用base64编码后的用户名与密码进行登陆
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>查询服务器支持什么命令