论文_邮件收发管理系统_第1页
论文_邮件收发管理系统_第2页
论文_邮件收发管理系统_第3页
论文_邮件收发管理系统_第4页
论文_邮件收发管理系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 本科毕业论文说明书 电子邮件收发系统的设计 MANAGEMENT SYSTEMS TO SEND AND RECEIVE E-MAIL 学院部:计算机科学与工程学院 专业班级: 信息平安05-2 学生姓名: QQ49765400 指导教师: _ 2021年6月2日I 电子邮件收发系统的设计 摘要 电子邮件在当今社会中扮演了一个很重要的角色。越来越多的人在使用它。而且用 它的人数势必会继续增加。虽然,现在已经有很多的邮件收发软件,但是对于大多数的 非专业的人来说它还是有点难度稍嫌复杂。因此,我们就利用 SMTP和POP3协议从底 层开发了这个软件。SMTP全称是简单邮件传输协议,它专门用来发送

2、邮件用。 POP全 称是邮局协议,是专门用于接收邮件。本次设计就是利用 PHP+Apache这一黄金组合来 实现一个邮件收发管理系统,使用此系统,你既可以用它发送一个纯文本邮件,也可以 发送一个带有附件的邮件,理所当然地,你也可以使用不同的SMTP效劳器。经过测试, 证实此软件是一个支持纯文本,或者带附件的邮件发送软件。 关键词:SMTP POP3 邮件发送,附件2 MANAGEMENT SYSTEMS TO SEND AND RECEIVE E-MAIL ABSTRACT E-mail in todays society plays a very important role. More a

3、nd more people use it. And the number of people using it will certainly continue to increase. Although, there are a lot of software to send and receive mail, but most of the non-professional people it is responsible for a little bit more difficult. Therefore, we will make use of SMTP and POP3 protoc

4、ol developed from the bottom of this software. The full name of the SMTP Simple Mail Transfer Protocol, is used to send e-mail. POP Post Office Protocol is the full name is dedicated to receiving mail. The design is to use PHP+Apache in this gold to achieve a portfolio management system to send and

5、receive e-mail, the use of this system, you can use it to send a plain text message, you can send an e-mail with attachments, of course, You can also use a different SMTP server. Tested to confirm this software is a support for plain text, or e-mail with attachments software. KEYWORDS: smtp, pop3, e

6、-mail, attachmenti 目录 摘要 . I ABSTRACT . II 1引言 . 1 1. 1 电子邮件介绍 . 1 1. 2开发背景 . 2 1. 3开发环境及运行环境 . 2 1. 3. 1开发环境 . 2 1. 3. 2 运行环境 . 2 2 软件架构及系统用例图 . 3 2. 1 系统架构 . 3 2. 2系统总体用例 . 3 2. 3程序功能框图 . 3 2. 4发送邮件函数 . 4 2. 5 接收邮件函数 . 4 3 SMTP和POP劲、议的研究 . 5 3. 1 SMTP协议简介及工作原理 . 5 3. 1. 1 SMTP简介 . 5 3. 1. 2 SMTP协议

7、的命令 . 5 3. 1. 3 SMTP的工作原理 . 5 3. . 2 POP3协议介绍和工作原理 . 6 3. 2. 1 POP3简介与命令 . 6 3. 2. 2 POP工作原理简介 . 7 4 RFC822ARPA因特网文本信件格式的标准 . 8 4. . 1 RFC822简单介绍 . 8 4. . 2信件的头部 . 8 4. . 2. 1 信头的一般格式 . 8 4. 2. 2 结构化字段和非结构化字段 . 9 4. 2. 3信头字段的元素 . 9 4. 2. 4标准的信头字段 . 10 5重要模块设计 . 14 5. 1用户登录模块 . 14 5. 1. 1主要函数说明 . 14

8、5. 1. 2局部主要代码 . 15 5. 2 发送带附件邮件模块 . 15 5. 2. 1关键函数 . 15 5. 2. 2局部主要代码 . 16 5. 3收邮件模块 . 17 5. 3. 1主要函数说明 . 18 5. 3. 2局部主要代码 . 18 5.4查看邮件模块 . 20 5.4.1主要函数说明: . 20 5.4.2局部主要代码 . 21 6 软件运行时的界面 . 24 6. 1登录邮件效劳器 . 24 6. 2发送邮件界面 . 24 6. 2. 1 发送不带附件的邮件 . 25 6. 2. 2 发送带附件的邮件 . 25 6. 3查找邮件模块 . 26 7 系统测试 . 27

9、7. 1同一 SMTF务器发送邮件的测试 . 27 7. 1. 1发送一封文本邮件给一个收信人 . 27 7. 1. 2发送一封带附件的邮件给一个收件人 . 27 7. 2利用不同的SMTF务器发送邮件的测试 . 28 8 结论 . 29 参考文献 . 30 致谢 . 31 附录A . 31 附录B . 321 1引言 1. 1电子邮件介绍 电子邮件简称E-mail 乂称电子信箱、电子邮政,它是一种用电子手段提供 信息交换的通信方式。它是全球多种网络上使用最普遍的一项效劳。这种非交互 式的通信,加速了信息的交流及数据传送,它是一个简易、快速的方法。通过连接 全世界的Internet,实现各类信

10、号的传送、接收、存贮等处理,将邮件送到世界的 各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种效劳, E-mail不只局限丁信件的传递,还可用来传递文件、声音及图形、图像等不同类 型的信息。 电子邮件不是一种“终端到终端的效劳 ,是被称为“存贮转发式效劳。 这正是电子信箱系统的核心,利用存贮转发可进行非实时通信,届异步通信方式。 即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在, 仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。接收者可在他 认为方便的时候读取信件,不受时空限制。在这里,“发送邮件意味着将邮件放 到收件人的信箱中,而“接收

11、由廿件那么意味着从自己的信箱中读取信件,信箱实际 上是由文件管理系统支持的一个实体。因为电子邮件是通过邮件效劳器 mail server来传递档的。通常 mail server是执行多任务操作系统 UNIX的计算机, 它提供24小时的电子邮件效劳,用户只要向mail server管理人员申请一个信箱 账号,就可使用这项快速的邮件效劳。 电子邮件的工作原理: 1 电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的 产物。 电子邮件的传输是通过电子邮件简单传输协议 Simple Mail Transfer Protocol,简称SMTP这一系统软件来完成的,它是Internet下的一种

12、电子邮件通 信协议。 2 电子邮件的根本原理,是在通信网上设立“电子信箱系统,它实际上是 一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的 存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱,每位用户都有 届丁自己的一个电子信箱。并确定一个用户名和用户可以自己随意修改的口令。 存储空间包含存放所收信件、编辑信件以及信件存盘三局部空间 ,用户使用口令 开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能 主要由软件实现。 3电子邮件的通信是在信箱之间进行的。用户首先开启自己的信箱,然后 通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之

13、间进行 传递和交换,也可以与另一个邮件系统进行传递和交换。收方在取信时,使用特 定账号从信箱提取。 2 1. 2开发背景 当前流行的各大邮件客户端软件的除了最主要的收发信件之外,功能越来越 复杂,但是人们平常真正用到的功能很少,很多功能尤其对丁那些计算机知识相 对缺乏的人来说,更加显得太过丁华美而不太实用。有鉴丁此,在了解 RFC底层 协议的根底上,我们开发了这个各种功能相对简单实用的邮件客户端程序,简化 了很多不必要的功能。 1. 3开发环境及运行环境 1. 3. 1开发环境 Intel Core Duo T2050 , 2G内存,320G硬盘 Microsoft? Windows? 200

14、3 企业版 IIS6.0(SMTP)+POP3效劳器,IP 地址为 6 Macromedia Dreamweaver 8 Apache+PHP 1. 3. 2运行环境 I ntel? Pentium? 2 及以上处理器,32M以上内存,4G以上硬盘 Microsoft? Windows? X P/NT操作系统 800*600或以上的屏幕分辨率 IE6.0或者其他浏览器3 2软件架构及系统用例图 2. 1系统架构 软件的总体架构如图2-1 : 2. 2系统总体用例 2. 3程序功能框图4 fJ 简单邮件接收 J 带有附件的邮件接收 L 如 简单邮件发送 厂 J 带有附件的邮

15、件发送 广V 飞 电子邮件编写 / A电子邮件的查询管理 subject或SUBJECTS一样。 不过字段名称大小写有习惯的常用形式,如主题字段的大小写形式通常为 Subject。字段体的大小写稍微复杂点,要视情况而定。比方 Subject后面的字 段体,其中的大写可能就是缩写的专用名词,不能改动。 4. 2. 4标准的信头字段 卜面介绍RFC82仲定义的常用的标准信头字段。 表4-1 RFC822常用的标准信头字段 与发信方有关的信头字段 格式:From: mailbox 举例:From: wang163 写信人字段。说明信件的原始创立者,给出他的电子信 箱地址。创立者对信件的原始内容负责。

16、 格式:Sender: mailbox 举例:From: wang163 Sender: lisina 发送者字段。说明实际提交发送这个信件的人,给出他 的电子信箱地址。当发信人与写信人不一样时使用。比 如,秘书替经理发信。发送者对发送负责。 格式:Reply-TO : mailbox 举例:From: wang163 From : zhaosoho 回复字段。指定应当把回信发到哪里。如果有此字段, 回信将会发给它指定的邮箱,而、会发给 From字段指定 的邮箱。比方,发送的是经理的信,但回信应交办公室 处理。 与收信方有关的信头字段 格式:T。mailbox list 举例:TQ zhang

17、263 收信人字段。指定主要收信人的邮箱地址,可以是多个 邮箱地址的列表,地址中间用逗号隔开。 格式:Cc: mailbox list 举例:Cc: zhang863 抄送字段。指定此信件要同时发给哪些人,也称为抄送。 也可以使用邮箱地址列表,抄送给多个人。 11 格式: Bcc: mailbox list 密抄字段。指定此信件要同时秘密发给哪些人,也称为 密件抄送。也可以使用邮箱地址列表,密抄给多个人。 其它的信头字段 格式:Date: date-time 举例:Date: Tue,04 Dec 2004 16:18:08 +800 日期字段:Date字段含有电子邮件创立的日期和时间。 格式

18、:Subject : *text 举例:Subject : Hello! Subject : Re:Hello! 信件主题字段。描述信件的主题。当回复信件时,通常 主题前面增加 Re:前缀,标记为该信件为回复信 件:当信件被转发时,通常在土题文子前面加上 Fw:, Fwd:这样的前缀。 格式:Received : from domain;发送主机 by domain; 接收主机 via atom; 物理路径 id msg-id; 接收者 msg id 接受字段。是投递信件的特定邮件效劳器所作的记录。 处理邮件投递的每个效劳器必须给它处理的每个信头 的前面加一个 Received子段,用以描述信

19、件到达目的 地所经过的路径以及相关信息。当跟踪各个电子邮件问 题时,这个信息很有帮助。 举例:Received:from wang by li Tue dec 2003 12:18:02 +800 格式:Comments *text 注释字段。用于把一个注解添加到信件中。 格式:Resent-* 举例:Resent-From Resent-Sender Resent-date Resent-Reply-To 重发字段。当需要把收到的信件重发给另一组收信人的 时候,可以保持整个原始信件不变,并简单地产生重发 信件所要求的新信头字段。为防止与以前的字段相混。 新

20、添加的信头子段都加上 Resent-前缀子符串,它们的语 法与未加前缀的同名字段相同。 格式:Message-ID : msg-id 信件标识字段。用于表示一个信件唯一标识,该字段通 常有Smtp效劳器生成,这个值通常是唯一的。形式根据 使用的软件而定。通常左边是标识符,右边指定电脑名 表4-1中的关键字说明了电子邮件借用了办公室备忘录中的概念和术语:电 子邮件的头部能够包含一行说明应当接收到该备忘录的接收方。象传统的办公室 备忘录一样,电子邮件使用关键字 Cc指明一个复写副本(carbon copy).电子邮 件软件必须向Cc:后面的电子邮件地址表中的每个地址发送一份消息的副本。 传统的办公

21、室过程要求备忘录的发送方通知接收方副本是否传给其它人。有 时发送方希望将备忘录的一个副本给别人而不显示出有一个副本被发送出去。一 些电子邮件系统提供这样的选项,遵循传统的办公室术语,用盲复写副本 (blind carbon copy)来表示。创立消息的用户 在关键字Bcc后给出一个电子邮件地址表,指定一个或多个盲复写副本。虽 然Bcc在发12 送方出现,但当信息发送时,邮件系统将它从消息中除去。每个接收 方必须检查头部的To和Cc行以决定信息是直接发送还是作为盲副本发送的 (有 些邮件系统在正文局部附加信息来告诉接收者它是一个盲副本 )。其它接收者不 知道有哪些用户接收到盲副本。 电子邮件使用

22、与传统的办公室备忘录相同的格式和术语:头部包括与消息有 关的信息,正文包括消息文本。电子邮件头部的行说明发送方、接收方、日期、 主题、应当收到副本的人的列表。 (1)扩展字段 如果想在信头中参加 RFC822中没有规定的字段,就需要创立非标准字段。 方法非常简单,只要在自定义的信头字段名的前面使用 X-前缀。RFC822将这种 方法称为扩展字段。事实上已经有许多扩展字段被广泛应用,但没有标准定义。 例如: X-LOOP?段 X-LOOP?段用来防止邮件的循环传送。过滤或邮件列表处理程序,可以给它 处理的每个信件增加一个X-LOOP字段,以后就可以根据这个字段中含有的特别 值,判断一个信件是否被

23、循环传送。如果确认邮件发生了循环,过滤或邮件列表 处理程序就可以用不同的方式处理该信件。 X-Mailer 字段 X-Mailer字段用丁指示什么样的程序产生了这个信件,它是使用最广泛的扩 展字段。产生邮件的软件可以为所有发送的信件增加适宜的 X-Mailer字段,该 字段不仅含有软件的名称,还包含软件的版本号。 (2)普通关键字 下表4-2列出了一些在因特网电子邮件中可以找到的普通关键字,以及它们 的含义。 表4-2电子邮件中的普通关键字 关键字 含义 From 发送万地址 To 接收方地址 Cc 复制副本地址 Date 信息创立日期 Subject 信息主题 Reply-To 回复地址 1

24、3 X-Charset 使用的字符集通常为 ASCII X-Mailer 发送信息所使用的软件 X-Sender 发送万地址的副本 X-Face 经编码的发送方面孔的图象 14 5重要模块设计 5. 1用户登录模块 5. 1. 1主要函数说明 邮件收发管理系统的用户登录页面与普通页面的实现方法不同,首先需要通 过imap_open()函数建立与POP务器的连接,然后对用户接受的邮箱信息进行 判断。如果用户成功登录,贝U使用imap_close()函数关闭与POP3K务器的连接, 并指定到指定的页面。下面对用户登录信息处理页面中所使用的关键函数进行介 绍。 1) imap_open() imap

25、_open()函数用丁建立与POPR艮务器的连接。 语法:resource imap_open(string mailbox,string username,string password,int options,int n_tetries) 。 imap_open()函数的参数说明如表5-1所示 表5-1 imap_open()参数说明 参数 说明 maibox 必选参数。效劳器地址 username 必选参数。用户帐号 password 必选参数。用户密码 options 可选参数。该参数取值及说明如表 5-2 int n_retries 可选参数。试图与IMAP效劳器建立连接的最大连接数

26、 表5-2 options 参数取值及说明 参数取值 说明 OP_READONL Y 翻开连接使用只读状态 OP_ANONYMOUS 匿名读取NNTP效劳器,不使用newsrc文件 OP_HALFOPEN 只与IMAP或NNTP效劳器连接,不翻开邮箱 OP_EXPUNGE 关闭连接时自动去除邮箱中的信件 2) imap_close() imap_close()函数用丁关闭与POPCSK务器的连接。 语法:bool imap_close(resource imap_stream,int flag) imap_close()函数的参数说明如表5-3所示。 图5-3 imap_close() 参数说

27、明 参数 说明 imap_stream 必选参数。imap_open()函数与效劳器成功建立连接后所返回的连 接标识 flag 可选参数。如果将该参数设置为 CL_EXPUNG E那么在断开与效劳器 的连接的同时删除所有带有连接标记的邮件 5. 1. 2局部主要代码 15 处理用户登录信息的页面代码如下: ?php session_start(); $hostname=$_SESSIONhost; $username=$_SESSIONuser; $userpwd=$_SESSIONpwd; if(!$mbox=imap_open($hostname,$username,$userpwd) e

28、cho alert( 请通过正确的途径重新本系 统!);history.back(); exit; $id=$_GETid; $obj=imap_header($mbox,$id); ? 5. 2发送带附件邮件模块 发送带附件的E-mail页面首先对接收用户发送的收件人、邮件主题、附件、 邮件内容等信息,并获取附件的文件类型、大小等届性,然后应用 imap_mail_compose()函数创立MIME,件,最后应用imap_mail()函数将邮件发 送到POP3效劳器的 目录下对应的邮箱内,下面对发送 带附件的E-mail信息处理页面中所使用的关键函数进行介绍。 5. 2. 1关键函数 1)

29、imap_mail_compose()函数 创立一个MIMBW件 语法:string imap_mail_compose(array envelope,array body) imap_mail_compose()函数的参数说明如表5-4所示。 表 5-4 imap_mail_compose() 参数说明 参数 说明 envelope 必选参数。由与邮件地址有关的首部信息组成,包括 From,Reply_To,Cc,Bcc,Subject 等项 body 必选参数。由具体的邮件以及与其格式有关的各种属性组成 2) imap_mail()函数 发送邮件函数 语法:bool imap_mail(s

30、tring to,string subject,string message,string 16 additional_headers,string cc,string bcc,string rpath) 其各种参数如下表5-5所示: 表5-5 imap_mail() 参数说明 参数 说明 to 必选参数。收件人地址 subject 必选参数。邮件主题 message 必选参数。邮件内容 additional_headers 可选参数。邮件额外首部信息 cc 可选参数。抄送人地址 bcc 可选参数。密送人地址 rpath 可选参数。用于设置 Return-Path首部 5. 2. 2局部主要代

31、码 数据处理贞send.php的代码如下: ?php if($_POSTsubmit!=) $subject=$_POSTsubject; $mailbody=$_POSTmailbody; $envelopefrom= $_POSTfromuser; $part1type = TYPEMULTIPART; $part1subtype = mixed; $part2type = TYPETEXT; $part2subtype = plain; $part2encoding = ENCBINARY; $part2contents.data = $mailbodynnnt; $filename =

32、 $_FILESupfilename; if($filename!=)( $file=$_FILESupfiletmp_name; $fp = fopen($file, r); $contents = fread($fp, filesize($file); fclose($fp); if($_FILESupfiletype)( 17 $mimeType = $_FILESupfiletype; else( $mimeType =application/unknown; $part3type = TYPEAPPLICATION; $part3encoding = ENCBINARY; $part

33、3subtype = $mimeType; $part3description = $filename; $part3contents.data = $contents; $body1 = $part1; $body2 = $part2; if($filename!=)( $body3 = $part3; $message=imap_mail_compose($envelope, $body); list($msgheader,$msgbody)=split(rnrn,$message,2); if(imap_mail($_POSTtouser,$subject,$msgbody,$msghe

34、ader) echo alert( 邮件发送成功!);history.back(); else echo alert( 邮件发送失败!);history.back(); ? 5. 3收邮件模块 收邮件是邮件收发系统重要的功能之一,该页面通过分贞形式显示邮件信 息。下面对收邮件页面中所使用的关键函数进行介绍。 5. 3. 1主要函数说明 1) imap_check()函数 imap_check()函数用丁获取连接id ,并返回包含当前邮箱信息的对象。 语法:object imap_check(resource imap_stream) 参数imap_stream为imap_open()函数成功连

35、接上邮件效劳器后所返回的连 接标识。该函数返回对象可以调用的届性说明如表 5-6所示。 表5-6 imap_check()函数返回对象可调用的届性说明 18 属性名 说明 Date 根据RFC2822时间格式所返回的系统当前时间 Driver 返回邮箱所使用协议的名称,包括 POP3 IMAP和NNTP Mailbox 返回邮箱的名称 Nmsgs 返回邮箱中邮件的个数 Recent 返回最近收到邮件的数目 2) imap_search() imap_search()函数用丁搜寻指定标准的信件。 语法:array imap_search(resource imap_stream,string c

36、riterial,int options,string charset) imap_search()函数的参数说明如表5-7所示 表5-7 imap_search() 函数的参数说明 参数 说明 imap_stream 必选参数。imap_open()函数与效劳器成功建立连接后所返回的连接 标识 criteria 必选参数。指定查询的条件 options 必选参数。为 SE_UID值 charset 可选参数。指7E邮件所米用的子付集 5. 3. 2局部主要代码 输出邮件的相关届性,并在每封邮件前添加一个复选框,用来删除邮件的信息 代码如下: Nmsgs; print_r(imap_searc

37、h($mbox,SEEN); if($sum 暂无邮件 ?php else if($_GETpage= | is_numeric($_GETpage=false) 19 $page=1; else $page=$_GETpage; $pagesize=10; if($sum%$pagesize=0) $totalpage=$sum/$pagesize; else $totalpage=ceil($sum/$pagesize); $frompage=($page-1)*$pagesize+1; $topage=$frompage+$pagesize; if($sum-$topage)0) $to

38、page=$sum+1; for($i=$frompage;$i 5.4查看邮件模块 5.4.1主要函数说明: 查看邮件功能是建立在收件箱或查找邮件的根底上实现的,该页面供用户浏 览邮件资源,同时支持附件下载功能。下面对查看邮件页面中所使用的关键函数 进行介绍。 1) imap_headers()函数 imap_headers()函数用丁获取全部信件的标头信息。 语法:array imap_headers(resource imap_stream) 参数imap_stream为imap_open()函数成功连接上IMAP效劳器的返回值。 2) imap_body()函数 imap_body()

39、函数用丁获取指定邮件的内容。 语法:string imap_body(resource imap_stream,int msg_number,int options) imap_body()函数的参数说明如表5-8所示。 表5-8 imap_body()函数的参数说明 参数 说明 20 imap_stream 必选参数。imap_open()函数返回的IMAP标识 msg_number 必选参数。邮件号 options 可选参数。该参数的详细说明如表 5-9所示 表5-9 options 参数值的说明 参数值 说明 FT_UID 指正邮件亏为UID形式 FT_PEEK 如果已经设置了 Seen

40、标记,那么取消对该标记的设置 FT_INTERNAL 指定返回字符串的格式米用国际标准,而不米用 CRLF标准 3) imap_fetchbody()函数 imap_fetchbody()函数用丁获取指定邮件的指定局部内容。 语 法 : string imap_fetchbody(resource imap_stream,int msg_number,string part_number,int options) imap_fetchbody()函数的参数说明如表5-10所示。 表5-10 imap_fetchbody() 函数的参数说明 参数 说明 imap_stream 必选参数。imap

41、_open()函数与效劳器成功建立连接后所返回的连接标 识 msg_number 必选参数。邮件号 part_number 必选参数。指7E邮件局部亏 options 可选参数。该参数的详细说明参见表 5-9 4) imap_fetchstructure() 函数 imap_fetchstructure() 函数用丁获取的结构 语法: object imap_fetchstructure(resource imap_stream,int msg_number,int options) imap_fetchstructure() 函数的参数说明如表5-11所示。 表 5-11 imap_fetc

42、hstructure() 函数的参数说明 参数 说明 imap_stream 必选参数。imap_open()函数与效劳器成功建立连接后所返回的连接 标识 msg_number 必选参数。邮件号 options 可选参数。该参数的详细说明请参见表 5-9 5) imap_base64()函数 imap_base64()函数用丁对已经进行base64编码的文件进行解码。 语法:string imap_base64(string text) 21 参数text为已经进行base64编码的文本。 5.4.2局部主要代码 显示附件名称的代码如下: parts; if($array1-dparamete

43、rs0-value)!=) $filename=$array1-dparameters0-value; else $filename=$array1-description; if(strtolower(substr($filename,0,10)=strtolower(=?gb2312?B ) echo base64_decode(substr($filename,11,(strlen($filename)-13); else echo $filename; ? 下载附件页面的处理贞down.php的关键代码如下: ?php session_start(); $id=$_GETid; $ho

44、stname=$_SESSIONhost; $username=$_SESSIONuser; $userpwd=$_SESSIONpwd; if(!$mbox=imap_open($hostname,$username,$userpwd) echo alert( 请通过正确的途径重新本系 统!);history.back(); exit; $structure= imap_fetchstructure($mbox,$id); $array=$structure-parts; if($array1-dparameters0-value)!=) $filename=$array1-dparamet

45、ers0-value; else 22 $filename=$array1-description; if(strtolower(substr($filename,0,10)=strtolower(=?gb2312?B) $filename=base64_decode(substr($filename,11,(strlen($filename)-13); header(Content-type:application/octet-stream); header(Accept-ranges:bytes); header(Accept-length:100); header(Content-Dis

46、position:attachment;filename=.$filename.); $text=imap_fetchbody($mbox,$id,2); echo imap_base64($text); imap_close($mbox); exit;23 ? 24 6软件运行时的界面 6. 1登录邮件效劳器 过程中,需要指定SMTFW务器IP地址,以及用户名和密码。指定这些发邮件的 系统翻开之后,需要登录邮件系统,登录界面如图 6-1所示,在这个登录的 25 收件箱 查豚咐 选择 岌伴人 写件取|瓦 皆无邮伴 图6-2主页面 6. 2发送邮件界面 图6-1 登录界面 必须参数之后,点击登录

47、按钮,如图6-2所示。 26 6. 2. 1发送不带附件的邮件 在新建帐号的过程中已经指定了邮件地址,和帐号名称,所以默认的以这些 参数来发送邮件。其格式是严格按照表 4-1 RFC822常用的标准信头字段来设计 的。通过调用参数的不同程序会自动的调用相对应的代码来执行不同的操作。发 送简单的邮件运行界面如下。 !眺迎 t牌迎恋会录郎件映发系器. 海件人 卜血皿或队 |haih&8zinL. com 主题:|fiW 死件:I I.浏览.) 作好 qj 图6-3发送纯文本邮件 6. 2. 2发送带附件的邮件 如果需要发送带附件的邮件,只需要在图 6-3的界面中点击附件后面的浏览 按钮,选

48、取需要发送的附件即可。如图 6-4所示。刷新 退出 27 6. 3查找邮件模块 邮件发送或接受之后,可以利用查找邮件模块进行邮件的查询,方便用户的 使用和管理邮件。查找模块界面如图 6-5所示。 图6-4 发送带有附件的邮件 28 今天是 2D。睥 5月卯日星期六 图6-5 查找邮件界面T ha* n *.M u _LJ A 亶找郎忤:衣件入 壹技 29 7系统测试 在系统完成后需要对系统进行一定的测试,以保证其适用与不同的环境,测 试根本分为以下几个局部。 7. 1同一 SMT效劳器发送邮件的测试 这个方面的测试测的是,用户登录一个效劳器测试中用的是我们利用 IIS 搭建的SMTP艮务器来发

49、送一封邮件的测试。 7. 1. 1发送一封文本邮件给一个收信人 测试中仍然用我们搭建的邮件效劳器同时发往不同的邮箱, 按照图6-3发送 纯文本邮件的参数发送,接收到的邮件如图 7-1所示。通过本系统都可以正常的 接收到。从而很好的验证了,我们的邮件系统支持各个邮箱之间互相发送接受的 功能。 今天是 2021年&月 1。日星期三 I歆迎:欢送悠登录邮件收发系犹. 育,看件 Ht 问: ZOO9-5-1O 3.25.14 妄牛人.- ccm 收 Ft A 主题: 称外 图7-2发送并接收邮件成功 7. 1. 2发送一封带附件的邮件给一个收件人 测试同样使用7.1.1节的方法,添加附件后发送

50、,同样,在收件人方可以正 确接收并下载附件,如图7-2所示。单击下载附件即可下载附件到本地,说明此 系统实现了附件发送和下载的功能。刷新 退出 收件箝 30 图7-2发送并接收带附件的邮件成功 7. 2利用不同的SMTP艮务器发送邮件的测试 这个方面的测试是指利用不同的邮箱来发送邮件,上面的测试已经实现 yx 和sina 两个SMTF务器之间的互相发送,至丁测试的分类$同丁利 用同一效劳器发送邮件的测试,所以不再此赘述。 总之,通过以上的各方面的测试,使我改正了代码中的许多不合理以及错误 之处,最终也证明了,我们的软件系统是支持多种效劳器,支持附件发送和下载 的Web件收发管理系统。刷新 诅 IN !耽迎 :成迎包登录邮件收发茉蔬- 箜看 时间: 2021-6-10 3:20 奁忡人; wolyic. con 收件人: 主 S3: 靴件: FHP英支参考手 fl&. Pif CF甥知 发件箱 存用!31

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论