91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

顯示郵件控件詳細設計

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

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

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

二、分析發件人
例如:From: =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
首先是根據“From:”來找到發件人。
1.沒有“From: ”,則顯示“未指定發件人”。
2.例如:From: masterlee
   直接顯示“masterlee”。
3.例如:From: lijt@neusoft.com
   直接顯示“lijt@neusoft.com”。
4.例如:From: masterlee<lijt@neusoft.com>
   直接顯示“masterlee”。
5.例如:From: =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
   對于這種情況,前面的“?B?”表示是以BASE64編碼,需要解碼后顯示“李經通”。
   有的是“?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: ”時,兩個都顯示“李經通;李經通”。中間用“;”號隔開。
7.第一行沒有信息,而在下一行:
From:
 =?gb2312?B?wO6+rc2o?= <lijt@neusoft.com>
第二行顯示先是一個空格,后面是具體內容。分析同上(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”的內容。需要全部顯示“李經通;李經通;李經通”。
9、 在VB中使用TEXTBOX控件。需要設置成多行。
注:參考RFC2045、RFC2047。

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

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

五、分析主題
1.主題是根據“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–

這里需要進行字符串匹配。

附件的判斷是根據:
Content-Disposition: attachment;
Content-Disposition: inline;

注:參考RFC1806、RFC2183。

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

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

七、分析郵件內容
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;
等等。

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

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

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 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 97韩剧(tv)网| 欧美亚洲卡 | 97免费在线视屏 | 日本韩国欧美 | 精品福利| 91视频国产精品 | 国产情侣自拍网站 | 国产日韩对 | 国产综合24| 91福利视| 狠狠做深爱 | 青草精品| 国产精彩亚洲中文 | 国产21页| 区二区视频免费看 | 97视频在线播放 | 国语自产偷拍 | 国产精品一区在线 | 日韩在线国产 | 国产有码| 3D成人免费网站 | 成人午夜性影院 | 国产成年码a | 97成人抖音 | 国产亚洲欧美视频 | 日本三级日产三级国 | 欧洲精品亚洲一区 | 精品视频app | 国产偷亚洲偷 | 国产最新一区 | 飘雪视频免费观看 | 国内揄拍| 果冻剧精品传媒入口 | 日韩在线观看视频黄 | 日本一区二区在线 | 日本免费在线视频 | 欧美亚洲日韩中文在 | 97国产在线公开免 | 午夜家庭影 | 欧美亚洲综合色 | 亚洲无码高清不卡 |