論文_郵件收發(fā)管理系統(tǒng)_第1頁
論文_郵件收發(fā)管理系統(tǒng)_第2頁
論文_郵件收發(fā)管理系統(tǒng)_第3頁
論文_郵件收發(fā)管理系統(tǒng)_第4頁
論文_郵件收發(fā)管理系統(tǒng)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 本科畢業(yè)論文說明書 電子郵件收發(fā)系統(tǒng)的設(shè)計(jì) MANAGEMENT SYSTEMS TO SEND AND RECEIVE E-MAIL 學(xué)院部:計(jì)算機(jī)科學(xué)與工程學(xué)院 專業(yè)班級(jí): 信息平安05-2 學(xué)生姓名: QQ49765400 指導(dǎo)教師: _ 2021年6月2日I 電子郵件收發(fā)系統(tǒng)的設(shè)計(jì) 摘要 電子郵件在當(dāng)今社會(huì)中扮演了一個(gè)很重要的角色。越來越多的人在使用它。而且用 它的人數(shù)勢(shì)必會(huì)繼續(xù)增加。雖然,現(xiàn)在已經(jīng)有很多的郵件收發(fā)軟件,但是對(duì)于大多數(shù)的 非專業(yè)的人來說它還是有點(diǎn)難度稍嫌復(fù)雜。因此,我們就利用 SMTP和POP3協(xié)議從底 層開發(fā)了這個(gè)軟件。SMTP全稱是簡單郵件傳輸協(xié)議,它專門用來發(fā)送

2、郵件用。 POP全 稱是郵局協(xié)議,是專門用于接收郵件。本次設(shè)計(jì)就是利用 PHP+Apache這一黃金組合來 實(shí)現(xiàn)一個(gè)郵件收發(fā)管理系統(tǒng),使用此系統(tǒng),你既可以用它發(fā)送一個(gè)純文本郵件,也可以 發(fā)送一個(gè)帶有附件的郵件,理所當(dāng)然地,你也可以使用不同的SMTP效勞器。經(jīng)過測試, 證實(shí)此軟件是一個(gè)支持純文本,或者帶附件的郵件發(fā)送軟件。 關(guān)鍵詞:SMTP POP3 郵件發(fā)送,附件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開發(fā)背景 . 2 1. 3開發(fā)環(huán)境及運(yùn)行環(huán)境 . 2 1. 3. 1開發(fā)環(huán)境 . 2 1. 3. 2 運(yùn)行環(huán)境 . 2 2 軟件架構(gòu)及系統(tǒng)用例圖 . 3 2. 1 系統(tǒng)架構(gòu) . 3 2. 2系統(tǒng)總體用例 . 3 2. 3程序功能框圖 . 3 2. 4發(fā)送郵件函數(shù) . 4 2. 5 接收郵件函數(shù) . 4 3 SMTP和POP勁、議的研究 . 5 3. 1 SMTP協(xié)議簡介及工作原理 . 5 3. 1. 1 SMTP簡介 . 5 3. 1. 2 SMTP協(xié)議

7、的命令 . 5 3. 1. 3 SMTP的工作原理 . 5 3. . 2 POP3協(xié)議介紹和工作原理 . 6 3. 2. 1 POP3簡介與命令 . 6 3. 2. 2 POP工作原理簡介 . 7 4 RFC822ARPA因特網(wǎng)文本信件格式的標(biāo)準(zhǔn) . 8 4. . 1 RFC822簡單介紹 . 8 4. . 2信件的頭部 . 8 4. . 2. 1 信頭的一般格式 . 8 4. 2. 2 結(jié)構(gòu)化字段和非結(jié)構(gòu)化字段 . 9 4. 2. 3信頭字段的元素 . 9 4. 2. 4標(biāo)準(zhǔn)的信頭字段 . 10 5重要模塊設(shè)計(jì) . 14 5. 1用戶登錄模塊 . 14 5. 1. 1主要函數(shù)說明 . 14

8、5. 1. 2局部主要代碼 . 15 5. 2 發(fā)送帶附件郵件模塊 . 15 5. 2. 1關(guān)鍵函數(shù) . 15 5. 2. 2局部主要代碼 . 16 5. 3收郵件模塊 . 17 5. 3. 1主要函數(shù)說明 . 18 5. 3. 2局部主要代碼 . 18 5.4查看郵件模塊 . 20 5.4.1主要函數(shù)說明: . 20 5.4.2局部主要代碼 . 21 6 軟件運(yùn)行時(shí)的界面 . 24 6. 1登錄郵件效勞器 . 24 6. 2發(fā)送郵件界面 . 24 6. 2. 1 發(fā)送不帶附件的郵件 . 25 6. 2. 2 發(fā)送帶附件的郵件 . 25 6. 3查找郵件模塊 . 26 7 系統(tǒng)測試 . 27

9、7. 1同一 SMTF務(wù)器發(fā)送郵件的測試 . 27 7. 1. 1發(fā)送一封文本郵件給一個(gè)收信人 . 27 7. 1. 2發(fā)送一封帶附件的郵件給一個(gè)收件人 . 27 7. 2利用不同的SMTF務(wù)器發(fā)送郵件的測試 . 28 8 結(jié)論 . 29 參考文獻(xiàn) . 30 致謝 . 31 附錄A . 31 附錄B . 321 1引言 1. 1電子郵件介紹 電子郵件簡稱E-mail 乂稱電子信箱、電子郵政,它是一種用電子手段提供 信息交換的通信方式。它是全球多種網(wǎng)絡(luò)上使用最普遍的一項(xiàng)效勞。這種非交互 式的通信,加速了信息的交流及數(shù)據(jù)傳送,它是一個(gè)簡易、快速的方法。通過連接 全世界的Internet,實(shí)現(xiàn)各類信

10、號(hào)的傳送、接收、存貯等處理,將郵件送到世界的 各個(gè)角落。到目前為止,可以說電子郵件是Internet資源使用最多的一種效勞, E-mail不只局限丁信件的傳遞,還可用來傳遞文件、聲音及圖形、圖像等不同類 型的信息。 電子郵件不是一種“終端到終端的效勞 ,是被稱為“存貯轉(zhuǎn)發(fā)式效勞。 這正是電子信箱系統(tǒng)的核心,利用存貯轉(zhuǎn)發(fā)可進(jìn)行非實(shí)時(shí)通信,屆異步通信方式。 即信件發(fā)送者可隨時(shí)隨地發(fā)送郵件,不要求接收者同時(shí)在場,即使對(duì)方現(xiàn)在不在, 仍可將郵件立刻送到對(duì)方的信箱內(nèi),且存儲(chǔ)在對(duì)方的電子郵箱中。接收者可在他 認(rèn)為方便的時(shí)候讀取信件,不受時(shí)空限制。在這里,“發(fā)送郵件意味著將郵件放 到收件人的信箱中,而“接收

11、由廿件那么意味著從自己的信箱中讀取信件,信箱實(shí)際 上是由文件管理系統(tǒng)支持的一個(gè)實(shí)體。因?yàn)殡娮余]件是通過郵件效勞器 mail server來傳遞檔的。通常 mail server是執(zhí)行多任務(wù)操作系統(tǒng) UNIX的計(jì)算機(jī), 它提供24小時(shí)的電子郵件效勞,用戶只要向mail server管理人員申請(qǐng)一個(gè)信箱 賬號(hào),就可使用這項(xiàng)快速的郵件效勞。 電子郵件的工作原理: 1 電子郵件系統(tǒng)是一種新型的信息系統(tǒng),是通信技術(shù)和計(jì)算機(jī)技術(shù)結(jié)合的 產(chǎn)物。 電子郵件的傳輸是通過電子郵件簡單傳輸協(xié)議 Simple Mail Transfer Protocol,簡稱SMTP這一系統(tǒng)軟件來完成的,它是Internet下的一種

12、電子郵件通 信協(xié)議。 2 電子郵件的根本原理,是在通信網(wǎng)上設(shè)立“電子信箱系統(tǒng),它實(shí)際上是 一個(gè)計(jì)算機(jī)系統(tǒng)。系統(tǒng)的硬件是一個(gè)高性能、大容量的計(jì)算機(jī)。硬盤作為信箱的 存儲(chǔ)介質(zhì),在硬盤上為用戶分一定的存儲(chǔ)空間作為用戶的“信箱,每位用戶都有 屆丁自己的一個(gè)電子信箱。并確定一個(gè)用戶名和用戶可以自己隨意修改的口令。 存儲(chǔ)空間包含存放所收信件、編輯信件以及信件存盤三局部空間 ,用戶使用口令 開啟自己的信箱,并進(jìn)行發(fā)信、讀信、編輯、轉(zhuǎn)發(fā)、存檔等各種操作。系統(tǒng)功能 主要由軟件實(shí)現(xiàn)。 3電子郵件的通信是在信箱之間進(jìn)行的。用戶首先開啟自己的信箱,然后 通過鍵入命令的方式將需要發(fā)送的郵件發(fā)到對(duì)方的信箱中。郵件在信箱之

13、間進(jìn)行 傳遞和交換,也可以與另一個(gè)郵件系統(tǒng)進(jìn)行傳遞和交換。收方在取信時(shí),使用特 定賬號(hào)從信箱提取。 2 1. 2開發(fā)背景 當(dāng)前流行的各大郵件客戶端軟件的除了最主要的收發(fā)信件之外,功能越來越 復(fù)雜,但是人們平常真正用到的功能很少,很多功能尤其對(duì)丁那些計(jì)算機(jī)知識(shí)相 對(duì)缺乏的人來說,更加顯得太過丁華美而不太實(shí)用。有鑒丁此,在了解 RFC底層 協(xié)議的根底上,我們開發(fā)了這個(gè)各種功能相對(duì)簡單實(shí)用的郵件客戶端程序,簡化 了很多不必要的功能。 1. 3開發(fā)環(huán)境及運(yùn)行環(huán)境 1. 3. 1開發(fā)環(huán)境 Intel Core Duo T2050 , 2G內(nèi)存,320G硬盤 Microsoft? Windows? 200

14、3 企業(yè)版 IIS6.0(SMTP)+POP3效勞器,IP 地址為 6 Macromedia Dreamweaver 8 Apache+PHP 1. 3. 2運(yùn)行環(huán)境 I ntel? Pentium? 2 及以上處理器,32M以上內(nèi)存,4G以上硬盤 Microsoft? Windows? X P/NT操作系統(tǒng) 800*600或以上的屏幕分辨率 IE6.0或者其他瀏覽器3 2軟件架構(gòu)及系統(tǒng)用例圖 2. 1系統(tǒng)架構(gòu) 軟件的總體架構(gòu)如圖2-1 : 2. 2系統(tǒng)總體用例 2. 3程序功能框圖4 fJ 簡單郵件接收 J 帶有附件的郵件接收 L 如 簡單郵件發(fā)送 廠 J 帶有附件的郵

15、件發(fā)送 廣V 飛 電子郵件編寫 / A電子郵件的查詢管理 subject或SUBJECTS一樣。 不過字段名稱大小寫有習(xí)慣的常用形式,如主題字段的大小寫形式通常為 Subject。字段體的大小寫稍微復(fù)雜點(diǎn),要視情況而定。比方 Subject后面的字 段體,其中的大寫可能就是縮寫的專用名詞,不能改動(dòng)。 4. 2. 4標(biāo)準(zhǔn)的信頭字段 卜面介紹RFC82仲定義的常用的標(biāo)準(zhǔn)信頭字段。 表4-1 RFC822常用的標(biāo)準(zhǔn)信頭字段 與發(fā)信方有關(guān)的信頭字段 格式:From: mailbox 舉例:From: wang163 寫信人字段。說明信件的原始創(chuàng)立者,給出他的電子信 箱地址。創(chuàng)立者對(duì)信件的原始內(nèi)容負(fù)責(zé)。

16、 格式:Sender: mailbox 舉例:From: wang163 Sender: lisina 發(fā)送者字段。說明實(shí)際提交發(fā)送這個(gè)信件的人,給出他 的電子信箱地址。當(dāng)發(fā)信人與寫信人不一樣時(shí)使用。比 如,秘書替經(jīng)理發(fā)信。發(fā)送者對(duì)發(fā)送負(fù)責(zé)。 格式:Reply-TO : mailbox 舉例:From: wang163 From : zhaosoho 回復(fù)字段。指定應(yīng)當(dāng)把回信發(fā)到哪里。如果有此字段, 回信將會(huì)發(fā)給它指定的郵箱,而、會(huì)發(fā)給 From字段指定 的郵箱。比方,發(fā)送的是經(jīng)理的信,但回信應(yīng)交辦公室 處理。 與收信方有關(guān)的信頭字段 格式:T。mailbox list 舉例:TQ zhang

17、263 收信人字段。指定主要收信人的郵箱地址,可以是多個(gè) 郵箱地址的列表,地址中間用逗號(hào)隔開。 格式:Cc: mailbox list 舉例:Cc: zhang863 抄送字段。指定此信件要同時(shí)發(fā)給哪些人,也稱為抄送。 也可以使用郵箱地址列表,抄送給多個(gè)人。 11 格式: Bcc: mailbox list 密抄字段。指定此信件要同時(shí)秘密發(fā)給哪些人,也稱為 密件抄送。也可以使用郵箱地址列表,密抄給多個(gè)人。 其它的信頭字段 格式:Date: date-time 舉例:Date: Tue,04 Dec 2004 16:18:08 +800 日期字段:Date字段含有電子郵件創(chuàng)立的日期和時(shí)間。 格式

18、:Subject : *text 舉例:Subject : Hello! Subject : Re:Hello! 信件主題字段。描述信件的主題。當(dāng)回復(fù)信件時(shí),通常 主題前面增加 Re:前綴,標(biāo)記為該信件為回復(fù)信 件:當(dāng)信件被轉(zhuǎn)發(fā)時(shí),通常在土題文子前面加上 Fw:, Fwd:這樣的前綴。 格式:Received : from domain;發(fā)送主機(jī) by domain; 接收主機(jī) via atom; 物理路徑 id msg-id; 接收者 msg id 接受字段。是投遞信件的特定郵件效勞器所作的記錄。 處理郵件投遞的每個(gè)效勞器必須給它處理的每個(gè)信頭 的前面加一個(gè) Received子段,用以描述信

19、件到達(dá)目的 地所經(jīng)過的路徑以及相關(guān)信息。當(dāng)跟蹤各個(gè)電子郵件問 題時(shí),這個(gè)信息很有幫助。 舉例:Received:from wang by li Tue dec 2003 12:18:02 +800 格式:Comments *text 注釋字段。用于把一個(gè)注解添加到信件中。 格式:Resent-* 舉例:Resent-From Resent-Sender Resent-date Resent-Reply-To 重發(fā)字段。當(dāng)需要把收到的信件重發(fā)給另一組收信人的 時(shí)候,可以保持整個(gè)原始信件不變,并簡單地產(chǎn)生重發(fā) 信件所要求的新信頭字段。為防止與以前的字段相混。 新

20、添加的信頭子段都加上 Resent-前綴子符串,它們的語 法與未加前綴的同名字段相同。 格式:Message-ID : msg-id 信件標(biāo)識(shí)字段。用于表示一個(gè)信件唯一標(biāo)識(shí),該字段通 常有Smtp效勞器生成,這個(gè)值通常是唯一的。形式根據(jù) 使用的軟件而定。通常左邊是標(biāo)識(shí)符,右邊指定電腦名 表4-1中的關(guān)鍵字說明了電子郵件借用了辦公室備忘錄中的概念和術(shù)語:電 子郵件的頭部能夠包含一行說明應(yīng)當(dāng)接收到該備忘錄的接收方。象傳統(tǒng)的辦公室 備忘錄一樣,電子郵件使用關(guān)鍵字 Cc指明一個(gè)復(fù)寫副本(carbon copy).電子郵 件軟件必須向Cc:后面的電子郵件地址表中的每個(gè)地址發(fā)送一份消息的副本。 傳統(tǒng)的辦公

21、室過程要求備忘錄的發(fā)送方通知接收方副本是否傳給其它人。有 時(shí)發(fā)送方希望將備忘錄的一個(gè)副本給別人而不顯示出有一個(gè)副本被發(fā)送出去。一 些電子郵件系統(tǒng)提供這樣的選項(xiàng),遵循傳統(tǒng)的辦公室術(shù)語,用盲復(fù)寫副本 (blind carbon copy)來表示。創(chuàng)立消息的用戶 在關(guān)鍵字Bcc后給出一個(gè)電子郵件地址表,指定一個(gè)或多個(gè)盲復(fù)寫副本。雖 然Bcc在發(fā)12 送方出現(xiàn),但當(dāng)信息發(fā)送時(shí),郵件系統(tǒng)將它從消息中除去。每個(gè)接收 方必須檢查頭部的To和Cc行以決定信息是直接發(fā)送還是作為盲副本發(fā)送的 (有 些郵件系統(tǒng)在正文局部附加信息來告訴接收者它是一個(gè)盲副本 )。其它接收者不 知道有哪些用戶接收到盲副本。 電子郵件使用

22、與傳統(tǒng)的辦公室備忘錄相同的格式和術(shù)語:頭部包括與消息有 關(guān)的信息,正文包括消息文本。電子郵件頭部的行說明發(fā)送方、接收方、日期、 主題、應(yīng)當(dāng)收到副本的人的列表。 (1)擴(kuò)展字段 如果想在信頭中參加 RFC822中沒有規(guī)定的字段,就需要?jiǎng)?chuàng)立非標(biāo)準(zhǔn)字段。 方法非常簡單,只要在自定義的信頭字段名的前面使用 X-前綴。RFC822將這種 方法稱為擴(kuò)展字段。事實(shí)上已經(jīng)有許多擴(kuò)展字段被廣泛應(yīng)用,但沒有標(biāo)準(zhǔn)定義。 例如: X-LOOP?段 X-LOOP?段用來防止郵件的循環(huán)傳送。過濾或郵件列表處理程序,可以給它 處理的每個(gè)信件增加一個(gè)X-LOOP字段,以后就可以根據(jù)這個(gè)字段中含有的特別 值,判斷一個(gè)信件是否被

23、循環(huán)傳送。如果確認(rèn)郵件發(fā)生了循環(huán),過濾或郵件列表 處理程序就可以用不同的方式處理該信件。 X-Mailer 字段 X-Mailer字段用丁指示什么樣的程序產(chǎn)生了這個(gè)信件,它是使用最廣泛的擴(kuò) 展字段。產(chǎn)生郵件的軟件可以為所有發(fā)送的信件增加適宜的 X-Mailer字段,該 字段不僅含有軟件的名稱,還包含軟件的版本號(hào)。 (2)普通關(guān)鍵字 下表4-2列出了一些在因特網(wǎng)電子郵件中可以找到的普通關(guān)鍵字,以及它們 的含義。 表4-2電子郵件中的普通關(guān)鍵字 關(guān)鍵字 含義 From 發(fā)送萬地址 To 接收方地址 Cc 復(fù)制副本地址 Date 信息創(chuàng)立日期 Subject 信息主題 Reply-To 回復(fù)地址 1

24、3 X-Charset 使用的字符集通常為 ASCII X-Mailer 發(fā)送信息所使用的軟件 X-Sender 發(fā)送萬地址的副本 X-Face 經(jīng)編碼的發(fā)送方面孔的圖象 14 5重要模塊設(shè)計(jì) 5. 1用戶登錄模塊 5. 1. 1主要函數(shù)說明 郵件收發(fā)管理系統(tǒng)的用戶登錄頁面與普通頁面的實(shí)現(xiàn)方法不同,首先需要通 過imap_open()函數(shù)建立與POP務(wù)器的連接,然后對(duì)用戶接受的郵箱信息進(jìn)行 判斷。如果用戶成功登錄,貝U使用imap_close()函數(shù)關(guān)閉與POP3K務(wù)器的連接, 并指定到指定的頁面。下面對(duì)用戶登錄信息處理頁面中所使用的關(guān)鍵函數(shù)進(jìn)行介 紹。 1) imap_open() imap

25、_open()函數(shù)用丁建立與POPR艮務(wù)器的連接。 語法:resource imap_open(string mailbox,string username,string password,int options,int n_tetries) 。 imap_open()函數(shù)的參數(shù)說明如表5-1所示 表5-1 imap_open()參數(shù)說明 參數(shù) 說明 maibox 必選參數(shù)。效勞器地址 username 必選參數(shù)。用戶帳號(hào) password 必選參數(shù)。用戶密碼 options 可選參數(shù)。該參數(shù)取值及說明如表 5-2 int n_retries 可選參數(shù)。試圖與IMAP效勞器建立連接的最大連接數(shù)

26、 表5-2 options 參數(shù)取值及說明 參數(shù)取值 說明 OP_READONL Y 翻開連接使用只讀狀態(tài) OP_ANONYMOUS 匿名讀取NNTP效勞器,不使用newsrc文件 OP_HALFOPEN 只與IMAP或NNTP效勞器連接,不翻開郵箱 OP_EXPUNGE 關(guān)閉連接時(shí)自動(dòng)去除郵箱中的信件 2) imap_close() imap_close()函數(shù)用丁關(guān)閉與POPCSK務(wù)器的連接。 語法:bool imap_close(resource imap_stream,int flag) imap_close()函數(shù)的參數(shù)說明如表5-3所示。 圖5-3 imap_close() 參數(shù)說

27、明 參數(shù) 說明 imap_stream 必選參數(shù)。imap_open()函數(shù)與效勞器成功建立連接后所返回的連 接標(biāo)識(shí) flag 可選參數(shù)。如果將該參數(shù)設(shè)置為 CL_EXPUNG E那么在斷開與效勞器 的連接的同時(shí)刪除所有帶有連接標(biāo)記的郵件 5. 1. 2局部主要代碼 15 處理用戶登錄信息的頁面代碼如下: ?php session_start(); $hostname=$_SESSIONhost; $username=$_SESSIONuser; $userpwd=$_SESSIONpwd; if(!$mbox=imap_open($hostname,$username,$userpwd) e

28、cho alert( 請(qǐng)通過正確的途徑重新本系 統(tǒng)!);history.back(); exit; $id=$_GETid; $obj=imap_header($mbox,$id); ? 5. 2發(fā)送帶附件郵件模塊 發(fā)送帶附件的E-mail頁面首先對(duì)接收用戶發(fā)送的收件人、郵件主題、附件、 郵件內(nèi)容等信息,并獲取附件的文件類型、大小等屆性,然后應(yīng)用 imap_mail_compose()函數(shù)創(chuàng)立MIME,件,最后應(yīng)用imap_mail()函數(shù)將郵件發(fā) 送到POP3效勞器的 目錄下對(duì)應(yīng)的郵箱內(nèi),下面對(duì)發(fā)送 帶附件的E-mail信息處理頁面中所使用的關(guān)鍵函數(shù)進(jìn)行介紹。 5. 2. 1關(guān)鍵函數(shù) 1)

29、imap_mail_compose()函數(shù) 創(chuàng)立一個(gè)MIMBW件 語法:string imap_mail_compose(array envelope,array body) imap_mail_compose()函數(shù)的參數(shù)說明如表5-4所示。 表 5-4 imap_mail_compose() 參數(shù)說明 參數(shù) 說明 envelope 必選參數(shù)。由與郵件地址有關(guān)的首部信息組成,包括 From,Reply_To,Cc,Bcc,Subject 等項(xiàng) body 必選參數(shù)。由具體的郵件以及與其格式有關(guān)的各種屬性組成 2) imap_mail()函數(shù) 發(fā)送郵件函數(shù) 語法:bool imap_mail(s

30、tring to,string subject,string message,string 16 additional_headers,string cc,string bcc,string rpath) 其各種參數(shù)如下表5-5所示: 表5-5 imap_mail() 參數(shù)說明 參數(shù) 說明 to 必選參數(shù)。收件人地址 subject 必選參數(shù)。郵件主題 message 必選參數(shù)。郵件內(nèi)容 additional_headers 可選參數(shù)。郵件額外首部信息 cc 可選參數(shù)。抄送人地址 bcc 可選參數(shù)。密送人地址 rpath 可選參數(shù)。用于設(shè)置 Return-Path首部 5. 2. 2局部主要代

31、碼 數(shù)據(jù)處理貞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( 郵件發(fā)送成功!);history.back(); else echo alert( 郵件發(fā)送失敗!);history.back(); ? 5. 3收郵件模塊 收郵件是郵件收發(fā)系統(tǒng)重要的功能之一,該頁面通過分貞形式顯示郵件信 息。下面對(duì)收郵件頁面中所使用的關(guān)鍵函數(shù)進(jìn)行介紹。 5. 3. 1主要函數(shù)說明 1) imap_check()函數(shù) imap_check()函數(shù)用丁獲取連接id ,并返回包含當(dāng)前郵箱信息的對(duì)象。 語法:object imap_check(resource imap_stream) 參數(shù)imap_stream為imap_open()函數(shù)成功連

35、接上郵件效勞器后所返回的連 接標(biāo)識(shí)。該函數(shù)返回對(duì)象可以調(diào)用的屆性說明如表 5-6所示。 表5-6 imap_check()函數(shù)返回對(duì)象可調(diào)用的屆性說明 18 屬性名 說明 Date 根據(jù)RFC2822時(shí)間格式所返回的系統(tǒng)當(dāng)前時(shí)間 Driver 返回郵箱所使用協(xié)議的名稱,包括 POP3 IMAP和NNTP Mailbox 返回郵箱的名稱 Nmsgs 返回郵箱中郵件的個(gè)數(shù) Recent 返回最近收到郵件的數(shù)目 2) imap_search() imap_search()函數(shù)用丁搜尋指定標(biāo)準(zhǔn)的信件。 語法:array imap_search(resource imap_stream,string c

36、riterial,int options,string charset) imap_search()函數(shù)的參數(shù)說明如表5-7所示 表5-7 imap_search() 函數(shù)的參數(shù)說明 參數(shù) 說明 imap_stream 必選參數(shù)。imap_open()函數(shù)與效勞器成功建立連接后所返回的連接 標(biāo)識(shí) criteria 必選參數(shù)。指定查詢的條件 options 必選參數(shù)。為 SE_UID值 charset 可選參數(shù)。指7E郵件所米用的子付集 5. 3. 2局部主要代碼 輸出郵件的相關(guān)屆性,并在每封郵件前添加一個(gè)復(fù)選框,用來刪除郵件的信息 代碼如下: 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主要函數(shù)說明: 查看郵件功能是建立在收件箱或查找郵件的根底上實(shí)現(xiàn)的,該頁面供用戶瀏 覽郵件資源,同時(shí)支持附件下載功能。下面對(duì)查看郵件頁面中所使用的關(guān)鍵函數(shù) 進(jìn)行介紹。 1) imap_headers()函數(shù) imap_headers()函數(shù)用丁獲取全部信件的標(biāo)頭信息。 語法:array imap_headers(resource imap_stream) 參數(shù)imap_stream為imap_open()函數(shù)成功連接上IMAP效勞器的返回值。 2) imap_body()函數(shù) imap_body()

39、函數(shù)用丁獲取指定郵件的內(nèi)容。 語法:string imap_body(resource imap_stream,int msg_number,int options) imap_body()函數(shù)的參數(shù)說明如表5-8所示。 表5-8 imap_body()函數(shù)的參數(shù)說明 參數(shù) 說明 20 imap_stream 必選參數(shù)。imap_open()函數(shù)返回的IMAP標(biāo)識(shí) msg_number 必選參數(shù)。郵件號(hào) options 可選參數(shù)。該參數(shù)的詳細(xì)說明如表 5-9所示 表5-9 options 參數(shù)值的說明 參數(shù)值 說明 FT_UID 指正郵件虧為UID形式 FT_PEEK 如果已經(jīng)設(shè)置了 Seen

40、標(biāo)記,那么取消對(duì)該標(biāo)記的設(shè)置 FT_INTERNAL 指定返回字符串的格式米用國際標(biāo)準(zhǔn),而不米用 CRLF標(biāo)準(zhǔn) 3) imap_fetchbody()函數(shù) imap_fetchbody()函數(shù)用丁獲取指定郵件的指定局部內(nèi)容。 語 法 : string imap_fetchbody(resource imap_stream,int msg_number,string part_number,int options) imap_fetchbody()函數(shù)的參數(shù)說明如表5-10所示。 表5-10 imap_fetchbody() 函數(shù)的參數(shù)說明 參數(shù) 說明 imap_stream 必選參數(shù)。imap

41、_open()函數(shù)與效勞器成功建立連接后所返回的連接標(biāo) 識(shí) msg_number 必選參數(shù)。郵件號(hào) part_number 必選參數(shù)。指7E郵件局部虧 options 可選參數(shù)。該參數(shù)的詳細(xì)說明參見表 5-9 4) imap_fetchstructure() 函數(shù) imap_fetchstructure() 函數(shù)用丁獲取的結(jié)構(gòu) 語法: object imap_fetchstructure(resource imap_stream,int msg_number,int options) imap_fetchstructure() 函數(shù)的參數(shù)說明如表5-11所示。 表 5-11 imap_fetc

42、hstructure() 函數(shù)的參數(shù)說明 參數(shù) 說明 imap_stream 必選參數(shù)。imap_open()函數(shù)與效勞器成功建立連接后所返回的連接 標(biāo)識(shí) msg_number 必選參數(shù)。郵件號(hào) options 可選參數(shù)。該參數(shù)的詳細(xì)說明請(qǐng)參見表 5-9 5) imap_base64()函數(shù) imap_base64()函數(shù)用丁對(duì)已經(jīng)進(jìn)行base64編碼的文件進(jìn)行解碼。 語法:string imap_base64(string text) 21 參數(shù)text為已經(jīng)進(jìn)行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的關(guān)鍵代碼如下: ?php session_start(); $id=$_GETid; $ho

44、stname=$_SESSIONhost; $username=$_SESSIONuser; $userpwd=$_SESSIONpwd; if(!$mbox=imap_open($hostname,$username,$userpwd) echo alert( 請(qǐng)通過正確的途徑重新本系 統(tǒng)!);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軟件運(yùn)行時(shí)的界面 6. 1登錄郵件效勞器 過程中,需要指定SMTFW務(wù)器IP地址,以及用戶名和密碼。指定這些發(fā)郵件的 系統(tǒng)翻開之后,需要登錄郵件系統(tǒng),登錄界面如圖 6-1所示,在這個(gè)登錄的 25 收件箱 查豚咐 選擇 岌伴人 寫件取|瓦 皆無郵伴 圖6-2主頁面 6. 2發(fā)送郵件界面 圖6-1 登錄界面 必須參數(shù)之后,點(diǎn)擊登錄

47、按鈕,如圖6-2所示。 26 6. 2. 1發(fā)送不帶附件的郵件 在新建帳號(hào)的過程中已經(jīng)指定了郵件地址,和帳號(hào)名稱,所以默認(rèn)的以這些 參數(shù)來發(fā)送郵件。其格式是嚴(yán)格按照表 4-1 RFC822常用的標(biāo)準(zhǔn)信頭字段來設(shè)計(jì) 的。通過調(diào)用參數(shù)的不同程序會(huì)自動(dòng)的調(diào)用相對(duì)應(yīng)的代碼來執(zhí)行不同的操作。發(fā) 送簡單的郵件運(yùn)行界面如下。 !眺迎 t牌迎戀會(huì)錄郎件映發(fā)系器. 海件人 卜血皿或隊(duì) |haih&8zinL. com 主題:|fiW 死件:I I.瀏覽.) 作好 qj 圖6-3發(fā)送純文本郵件 6. 2. 2發(fā)送帶附件的郵件 如果需要發(fā)送帶附件的郵件,只需要在圖 6-3的界面中點(diǎn)擊附件后面的瀏覽 按鈕,選

48、取需要發(fā)送的附件即可。如圖 6-4所示。刷新 退出 27 6. 3查找郵件模塊 郵件發(fā)送或接受之后,可以利用查找郵件模塊進(jìn)行郵件的查詢,方便用戶的 使用和管理郵件。查找模塊界面如圖 6-5所示。 圖6-4 發(fā)送帶有附件的郵件 28 今天是 2D。睥 5月卯日星期六 圖6-5 查找郵件界面T ha* n *.M u _LJ A 亶找郎忤:衣件入 壹技 29 7系統(tǒng)測試 在系統(tǒng)完成后需要對(duì)系統(tǒng)進(jìn)行一定的測試,以保證其適用與不同的環(huán)境,測 試根本分為以下幾個(gè)局部。 7. 1同一 SMT效勞器發(fā)送郵件的測試 這個(gè)方面的測試測的是,用戶登錄一個(gè)效勞器測試中用的是我們利用 IIS 搭建的SMTP艮務(wù)器來發(fā)

49、送一封郵件的測試。 7. 1. 1發(fā)送一封文本郵件給一個(gè)收信人 測試中仍然用我們搭建的郵件效勞器同時(shí)發(fā)往不同的郵箱, 按照?qǐng)D6-3發(fā)送 純文本郵件的參數(shù)發(fā)送,接收到的郵件如圖 7-1所示。通過本系統(tǒng)都可以正常的 接收到。從而很好的驗(yàn)證了,我們的郵件系統(tǒng)支持各個(gè)郵箱之間互相發(fā)送接受的 功能。 今天是 2021年&月 1。日星期三 I歆迎:歡送悠登錄郵件收發(fā)系猶. 育,看件 Ht 問: ZOO9-5-1O 3.25.14 妄牛人.- ccm 收 Ft A 主題: 稱外 圖7-2發(fā)送并接收郵件成功 7. 1. 2發(fā)送一封帶附件的郵件給一個(gè)收件人 測試同樣使用7.1.1節(jié)的方法,添加附件后發(fā)送

50、,同樣,在收件人方可以正 確接收并下載附件,如圖7-2所示。單擊下載附件即可下載附件到本地,說明此 系統(tǒng)實(shí)現(xiàn)了附件發(fā)送和下載的功能。刷新 退出 收件箝 30 圖7-2發(fā)送并接收帶附件的郵件成功 7. 2利用不同的SMTP艮務(wù)器發(fā)送郵件的測試 這個(gè)方面的測試是指利用不同的郵箱來發(fā)送郵件,上面的測試已經(jīng)實(shí)現(xiàn) yx 和sina 兩個(gè)SMTF務(wù)器之間的互相發(fā)送,至丁測試的分類$同丁利 用同一效勞器發(fā)送郵件的測試,所以不再此贅述。 總之,通過以上的各方面的測試,使我改正了代碼中的許多不合理以及錯(cuò)誤 之處,最終也證明了,我們的軟件系統(tǒng)是支持多種效勞器,支持附件發(fā)送和下載 的Web件收發(fā)管理系統(tǒng)。刷新 詛 IN !耽迎 :成迎包登錄郵件收發(fā)茉蔬- 箜看 時(shí)間: 2021-6-10 3:20 奩忡人; wolyic. con 收件人: 主 S3: 靴件: FHP英支參考手 fl&. Pif CF甥知 發(fā)件箱 存用!31

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論