公文素材库 首页

邮件收发系统总结

时间:2019-05-29 14:03:24 网站:公文素材库

邮件收发系统总结

邮件收发系统总结

1引言

1.1编写目的

1.总结邮件收发系统开发过程中的思想和想法2.总结系统开发时遇到的问题和尚未解决的问题3.提出系统需要完善的功能,模块等

4.总结开发过程中用到的技术和学习到的知识5.加深对技术及知识的巩固和理解

1.2背景

a.项目名称:邮件收发系统

开发环境:WindowsXP/xampp(PHP+Apache+Mysql)/GVIMb.任务提出者:李波(libo@eyou.net)

任务开发者:李鹏菲(li.pengfei@eyou.net)

1.3参考资料

a.PHP参考手册b.Jquery参考手册c.CSS参考手册d.Smarty参考手册

2实际开发结果

2.1目录结构

ClassImagesJs1).jquery-1.4.min.js2).custom.jsTemplates1).index.tpl

---文件夹:smarty模板类---文件夹:程序中的图片---文件夹:程序中的js文件---1.4版jquery包含文件---jquery主文件---文件夹:模板文件---首页tpl模板

2).Mail_send.tpl3).Mail_list.tpl4).Css.cssFunction.phpInclude.phpIndex.phpMail_ajax.phpMail_back.phpMail_class.phpMail_list.phpMail_send.phpPage_class.phpPop_class.php---邮件发送页面tpl模板

---邮件列表及邮件详细信息页面(主页面)tpl模板---样式表文件---系统函数文件

---smarty模板文件,系统全局替换变量在此文件定义---首页文件

---Ajax请求页.处理pop相关ajax请求并返回数据---Ajax请求页smtp相关ajax请求并返回数据---smtp邮件发送类文件---邮件列表页---邮件发送页---分页类

---pop邮件接收类文件

2.2主要功能和性能

a.利用SMTP协议实现邮件的发送;

兼容性不够.对PHP的MIME编码应用不够.邮件头部分字段未编码和邮件体位编码码

b.利用POP协议实现邮件的接收;

兼容性不够.Head解码时,不能正确处理多个收件人的情况.Body解码时,换行处乱码.

c.邮件列表页分页;

每页2封邮件,点击邮件标题进入邮件详细信息页面,点击预览可预览按钮邮件内容.

2.3未能完成的功能

(一)邮件详细信息页面:

1.邮件详细信息页面的动态改变字体大小;2.快速回复文本信息(二)邮件列表页

1.给邮件列表页标题标记颜色的功能还没有做完;2.快速回复文本信息

3.滑过发件人名字时弹出的浮动层中:

1)如果发件人在通讯录中,则显示发件人的其他扩展信息

2)给出针对发件人的操作按钮,如:阻止此人信件(即加入黑名单),添加到通讯录(如果不在通讯录中的话),显示所有此人发来的邮件…(三)查询功能…

4经验与教训

通过这次程序开发,我对邮件收发系统的发送和接收邮件有了基本的了解;对POP协议和SMTP的工作原理有了一定的认识;对Smarty模板的使用有了新的认识,我会继续学习Smarty并将其灵活运用到以后的开发过程中;也在开发过程中接触并学习到了新的知识.虽然之前看过入职须知中的代码规范,由于习惯以及其他原因,自己的代码书写不规范,在以后的开发中要保持正确的代码书写习惯.严格按照代码规范走;加强对Jquery,Smarty的学习;熟悉gvim的使用;

扩展阅读:邮件收发系统

邮件收发系统

电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。

电子邮件不是一种“终端到终端”的服务,是被称为“存贮转发式”服务。这正是电子信箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式。即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。接收者可在他认为方便的时候读取信件,不受时空限制。在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的个实体。因为电子邮件是通过邮件服务器(mai1server)来传递档的。通常mailserver是执行多任务操作系统UNIX的计算机,它提供24小时的电子邮件服务,用户只要向mailserver管理人员申请个信箱账号,就可使用这项快速的邮件服务。

电子邮件的工作原理:

1)电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。

电子邮件的传输是通过电子邮件简单传输协议(SimpleMailTransferProtocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子邮件通信协议。

2)电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的个电子信箱。并确定个用户名和用户可以自己随意修改的口令。存储空间包含存放所收信件、编辑信件以及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能主要由软件实现。

3)电子邮件的通信是在信箱之间进行的。用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之间进行传递和交换,也可以与另个邮件系统进行传递和交换。收方在取信时,使用特定账号从信箱提取。

当前流行的各大邮件客户端软件的除了最主要的收发信件之外,功能越来越复杂,但是人们平常真正用到的功能很少,很多功能尤其对于那些计算机知识相对缺乏的人来说,更加显得太过于华丽而不太实用。有鉴于此,在了解RFC底层协议的基础上,我们开发了这个各种功能相对简单实用的邮件客户端程序,简化了很多不必要的功能。软件的总体架构如图:

发送邮件类接收邮件类主要功能选择主界面

邮件发送:

是发送邮件的核心,类名为SmtpMail,隶属于命名空间MailSend。封装了发送邮件的具体实现方法,也是具体的RFC用代码实现的过程。而用户通过具体的操作接口,接口与SmtpMail类通过交互操作来实现用户发送信件的操作。STMP协议以及工作原理:

由于要开发的是邮件客户端程序,就不得不用到SMTP协议和POP协议。而我个人负责的是邮件发送功能的实现,因此就必然会涉及到SMTP(SimpleMailTransferProtocol)协议。SMTP被用来在因特网上发送邮件,该协议规定了一些基本的命令和方法使客户端与服务器进行交互,以达到发送邮件的目的。简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。

SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或IPCE)不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网络上的主机接力式传送。

SMTP命令定义了邮件传输或由用户定义的系统功能。它的命令是由结束的字符串。而在带有参数的情况下,命令本身由和参数分开,如果未带参数可以直接和连接。邮箱的语法格式必须和接收站点的格式一致。下面讨论SMTP命令和应答。

发送邮件操作涉及到不同的数据对象,它们由不同的参数相互连接。回复路径就是MAIL命令的参数,而转发路径则是RCPT命令的参数,邮件日期是DATA命令的参数。这些参数或者数据对象必须跟在命令后。这种模式也就要求有不同的缓冲区来存储这些对象,也就是说,有一个回复路径缓冲区,一个转发路径缓冲区,一个邮件内容缓冲区。特定的命令产生自己的缓冲区,或使一个或多个缓冲的内容被清除。

HELLO(HELO)

此命令用于向接收SMTP确认发送SMTP。参数域包括发送SMTP的主机名。接收SMTP通过连接确认命令来向发送SMTP确认接收SMTP。引命令和OK响应确认发送和接收SMTP进入了初始状态,也就是说,没有操作正在执行,所有状态表和缓冲区已经被子清除。

MAIL(MAIL)

此命令用于开始将邮件发送到一个多个邮箱中。参数域包括回复路径。返回路径中包括了可选的主机和发送者邮箱列表。当有主机列表时,它是一个回复路径源,它说明此邮箱是由在表中的主机一一传递发送(第一个主机是最后一个接收到此邮件的主机)过来的。此表也有作向发送者返回非传递信号的源路径。因为每个传递主机地址都被加在此表起始处,它就必须使用发送IPCE而不是接收IPCE(如果它们不是一个IPCE的话)清楚的名称。一些出错信息的回复路径可能就是空的。DATA(DATA)

接收者将跟在命令后的行作为邮件内容。此命令导致此命令后的邮件内容加入邮件内容缓冲区。邮件内容可以包括所有128个ASCII码字符。邮件内容由只包括一个句号的行结束,也就是如下的字符序列:".",它指示了邮件的结束。发送邮件类:SmtpMail

主要的函数:SmtpMail()AddAttachment()GetStream()Base64Encode()SendCommand()RecvResponse()邮件的接受:

客户端连接服务器成功后,服务器会返回以下信息:+OK……

字符+OK是POP3协议的返回信息。它的回应信息不像SMTP协议那样用丰富多变的数字表示,只有两个:+OK或者-ERR。其中,+OK表示连接成功,而-ERR则表示连接失败。

接下来,客户端输入USER

该命令告诉服务器你的用户名。注意,有些服务器会区分大小写字母的。服务器返回+OK后,客户端输入PASS

服务器返回+OK后,还返回一些邮箱的统计信息,比如:+OK1message(s)[1304byte(s)]

不同的服务器返回的信息格式不太一样,所以我们可以用STAT命令来查看邮箱的情况。STAT命令的回应中有两个数字,分别表示邮件的数量和邮件的大小。

如果信箱里有信,就可以用RETR命令来获取邮件的正文。RETR命令的格式为:

RETR

如果返回结果第一行是+OK信息,则表示成功。第二行起便是邮件的正文。最后一行和SMTP协议一样,是一个单独的英文句号,表示邮件的结尾部分。把邮件存储起来后要用DELE命令删除邮箱中的邮件,否则原有的邮件会继续保留在服务器上,一旦邮件一多,你的邮箱就爆了。DELE命令的格式为:

DELE

如果删错了,可以用RSET命令来恢复所有已被删除的邮件。条件是你还没有退出,一旦退出,那就一切ByeBye了。全部完成以后,输入QUIT命令就可以退出POP3服务器了。体统运行:

试验总结:

通过这次实训,我学到了一些基本的网络的一些服务的应用,而我选择的大作业是邮件的收发系统,所以对邮件的一些处理更加深刻。要完成这个系统,从SMTP协议规定的底层命令做起,一步步的与服务器进行交互操作,最终实现发送多附件多接收人的功能。其中,具体的和服务器的交互操作,都封装了在SmtpMail.dll这个动态链接库里面了。这个邮件收发系统相对来说比较简单,以后的日子,随着我技术的提高和思想的成熟,我一定会把它做的更好。

友情提示:本文中关于《邮件收发系统总结》给出的范例仅供您参考拓展思维使用,邮件收发系统总结:该篇文章建议您自主创作。

  来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


邮件收发系统总结
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/706689.html
相关阅读
最近更新
推荐专题