狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

顯示郵件控件詳細(xì)設(shè)計

admin
2012年2月17日 0:33 本文熱度 3155
目錄
一、 需求設(shè)計………………………..2
  1、需求:…………………………….2
  2、設(shè)計:…………………………….2
二、 分析發(fā)件人…………………….2
三、 分析收件人…………………….3
四、 分析日期………………………..3
五、 分析主題………………………..3
六、 分析附加………………………..3
七、 分析郵件內(nèi)容…………………4
附1、Quoted-Printable解碼…..5

一、需求設(shè)計
1、需求:
由于在內(nèi)容恢復(fù)中的SMTP和POP3需要利用OUTLOOK打開查看郵件,導(dǎo)致每次都要彈出新的窗口。如果做成控件或者就是VB程序中的一部分,效果會很好。

2、設(shè)計:
根據(jù)郵件格式,進(jìn)行分析,具體需要分析的內(nèi)容有:
(1).發(fā)件人;
(2).收件人;
(3).日期;
(4).主題;
(5).附加;
(6).郵件內(nèi)容。
由于是做界面效果,所以建議用VB制作,因為VC都需要自畫,效果不如VB??梢宰龀煽丶?,或者就是管理器的一部分代碼也可以。如果是控件,則可以把一個MAIL文件給控件,控件負(fù)責(zé)分析,顯示功能。

二、分析發(fā)件人
例如:From: =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
首先是根據(jù)“From:”來找到發(fā)件人。
1.沒有“From: ”,則顯示“未指定發(fā)件人”。
2.例如:From: masterlee
   直接顯示“masterlee”。
3.例如:From: lijt@neusoft.com
   直接顯示“l(fā)ijt@neusoft.com”。
4.例如:From: masterlee<lijt@neusoft.com>
   直接顯示“masterlee”。
5.例如:From: =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
   對于這種情況,前面的“?B?”表示是以BASE64編碼,需要解碼后顯示“李經(jīng)通”。
   有的是“?Q?”表示是Quoted-Printable編碼,和BASE64處理方法一樣,解碼后顯示。不顯示后面的具體郵件地址。
   (附1:Quoted-Printable解碼)
6.例如:
From: =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
From: =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
有多個“From: ”時,兩個都顯示“李經(jīng)通;李經(jīng)通”。中間用“;”號隔開。
7.第一行沒有信息,而在下一行:
From:
 =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
第二行顯示先是一個空格,后面是具體內(nèi)容。分析同上(2-6)
8.多行情況:
From: =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>,
 =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
 =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
從第二行開始,前面都有個空格。表示是屬于“From”的內(nèi)容。需要全部顯示“李經(jīng)通;李經(jīng)通;李經(jīng)通”。
9、 在VB中使用TEXTBOX控件。需要設(shè)置成多行。
注:參考RFC2045、RFC2047。

三、分析收件人
收件人是根據(jù)“T ”來判斷的,如果沒有“T ”,則顯示“無”。
其他處理見收件人的2-9。

四、分析日期
1.日期是根據(jù)“Date: ”來判斷的。如果沒有“Data: ”,則顯示本機日期。
   顯示格式“2002年4月14日 15:41”
2.例如“Date: Sun, 14 Apr 2002 12:59:10 +0800”需要轉(zhuǎn)換成“2002年4月14日 12:59”
3.兩行的情況
Date:
 Sun, 14 Apr 2002 12:59:10 +0800
第二行,先是一個空格。同2,分析后面的數(shù)據(jù)。
4.在VB中使用LABEL控件即可。

五、分析主題
1.主題是根據(jù)“Subject: ”來判斷,如果沒有,則顯示“(無主題)”。
2.例如:“Subject: test”直接顯示“test”。
3.帶有編碼的主題,需要解碼后顯示。有兩種編碼:BASE64和Quoted-Printable。
“Subject: =?gb2312?B?08q8/g==?=”解碼后顯示為“郵件”。
4.多行情況:
例如1:
Subject: =?UNKNOWN?B?sb7VvszhuanX47LKyO28/sbGveK088irwbS902h0dHA6Ly9yZHp4LnhpbHViYnMuY29t?=
例如2:
Subject: =?gb2312?B?MTAuMS4xLjIzNM/W1NrKx7fAu/DHvbLiytTX6dX91NrKudPDtcRJUCzH6w==?=
 =?gb2312?B?1bzTw7XEys23xdK7z8Iu?=
后面的行有一個空格,處理的時候,如果有編碼就解碼,沒有就連在一起直接顯示。
5.在VB中使用TEXTBOX控件。

六、分析附加
1. 判斷附件:
如果在郵件里有這些信息,那么就可以判斷是否有附件了。
格式一:
Content-Type: text/plain
Content-Disposition: inline(附件)
Content-Description: text-part-1

Some text goes here

格式二:
–outer

Content-Type: multipart/mixed; boundary=inner(說明是有多部分組成)
Content-Disposition: attachment(有附件)
Content-Description: multipart-2(附件是多個)

–inner

Content-Type: text/plain
Content-Disposition: inline(附件一)
Content-Description: text-part-2

Some more text here.

–inner

Content-Type: image/jpeg
Content-Disposition: attachment(附件二)
Content-Description: jpeg-1

–inner–

–outer–

這里需要進(jìn)行字符串匹配。

附件的判斷是根據(jù):
Content-Disposition: attachment;
Content-Disposition: inline;

注:參考RFC1806、RFC2183。

2.處理方法:
a) 確定編碼格式(RFC1555)
Content-transfer-encoding: BASE64 | Quoted-Printable
b) 確定文件名
Content-Disposition: attachment;filename="example.txt"
或:(有的文件名進(jìn)行了編碼)
Content-Disposition: attachment;
filename="=?gb2312?B?TmV0RXllzfjC58q1yrG84L/Yz7XNszEuZXhl?="
然后按照編碼把附加的內(nèi)容解碼,并按照文件名保存在臨時目錄中。

3. 在VB中,可以使用FILELISTBOX控件或者是LISTVIEW控件。這里需要增加右鍵菜單功能,實現(xiàn):打開、另存為、全部保存。如果沒有附件,就不顯示這個控件。

七、分析郵件內(nèi)容
1、例如:
From: Nathaniel Borenstein <nsb@bellcore.com>
TNed Freed <ned@innosoft.com>
Subject: Formatted text mail
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=boundary42

–boundary42

Content-Type: text/plain; charset=us-ascii

…plain text version of message goes here….

–boundary42

Content-Type: text/richtext

…. richtext version of same message goes here …

–boundary42

Content-Type: text/x-whatever

…. fanciest formatted version of same message goes here



–boundary42–

處理方法:
a) 編碼方法
Content-Transfer-Encoding := "BASE64" / "QUOTED-PRINTABLE"
b) 文件類型
Content-type: text/plain; charset=us-ascii
Content-Type: text/richtext
Content-Type: text/x-whatever
Content-Type: text/html;
等等。

根據(jù)編碼,先解碼,然后保存成相應(yīng)的文件,一般兩種,*.txt和*.html。
c) 對于alternative,即相同的內(nèi)容,不同的文件格式,如果有HTML,則以HTML顯示,如果沒有,則以TXT或其他顯示。

2、郵件的內(nèi)容格式是多樣的,有的附件,有的沒有。有的進(jìn)行了編碼,有的沒有。有的郵件是簡單的一快內(nèi)容,有的是多個組合的。所以進(jìn)行分析時要考慮到所有的情況。根據(jù)RFC文檔進(jìn)行詳細(xì)分析。

3、VB中使用WebBrowser控件,把臨時文件打開即刻。

附1、Quoted-Printable解碼
int quoted_to_str(const char *src, char *target, int targsize)
{
  int srclen;
  int i, j;
  char ch, ch1, ch2;
  unsigned char hz;
  srclen = strlen(src);
  for(i = 0, j = 0; i < srclen || j < targsize ; i++, j++)
  {
    ch = src;
    if (ch == ‘=’)
    {ch1 = src[++i];
      ch2 = src[++i];
      hz = (ch1>’9′?ch1-’A'+10:ch1-’0′)*16+(ch2>’9′?ch2-’A'+10:ch2-’0′);
      target[j] = hz;}
     else target[j] = ch;
  }
  return j;
}

該文章在 2012/2/17 0:33:14 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved