日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用SMTP,POP3访问Exchange邮箱:Exchange2003系列之六

發布時間:2024/1/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用SMTP,POP3访问Exchange邮箱:Exchange2003系列之六 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版權聲明:原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。[url]http://yuelei.blog.51cto.com/202879/76302[/url]
SMTP/POP3訪問郵箱暨SMTP/POP3原理<?XML:NAMESPACE PREFIX = O />

?

Exchange早期版本設計時側重于在企業內部提供郵件服務,郵件傳輸以MAPI為主;Exchange的后續版本增強了對Internet郵局的支持,現在Exchange2003可以作為一個標準的Internet郵局為用戶提供服務,也可以和互聯網上的其他Internet郵局進行交互。本文我們將介紹以下內容: ? 如何用Outlook Express作客戶端軟件,通過SMTPPOP3協議訪問郵箱

? Exchange和其他互聯網郵局通信時注意事項

?SMTPPOP3原理分析

? ESMTP

? BASE64編碼

?

實驗拓撲如下圖,Florence是域控制器和CA服務器,BerlinExchange服務器,Istanbul是客戶機 <?XML:NAMESPACE PREFIX = V />

?

? 如何用Outlook Express作客戶端軟件,通過SMTPPOP3協議訪問郵箱

?

標準的互聯網郵局包括SMTPPOP3兩個組件,SMTP負責郵件的出站/入站,POP3負責郵件存儲。我們可以利用SMTP把郵件發送出去,也可以利用POP3從自己的郵箱中下載郵件。Exchange2003SMTP來源于Win2003中的IISPOP3倒是和Win2003POP3服務沒有任何關系。Exchange2003POP3服務默認是禁用狀態,所以首先要啟動POP3服務。在Exchange服務器上,開始-管理工具-服務,找到“Microsoft Exchange POP<?XML:NAMESPACE PREFIX = ST1 />3服務,將POP3服務的啟動類型改為自動,然后啟動POP3服務。

?

這時Exchange服務器已經可以提供SMTPPOP3服務了,我們在客戶機Istanbul上,以Outlook Express(以后簡稱OE)作為客戶端軟件,測試一下SMTPPOP3的訪問狀況。啟動OE后,在工具菜單中選擇賬戶,在“郵件”標簽下,選擇 添加“郵件”

?

填寫郵件發送者的名稱,在此我們填寫一個用戶名,如下圖所示
接下來要寫用戶的郵件地址
最重要的參數,分別對SMTPPOP3服務器進行描述,可以用NETBIOS名稱,域名或是IP地址

?

輸入用戶名和口令就可以完成郵件賬號的設置了
配置完郵件賬戶后,啟動OE,點擊“創建郵件”,給administrator發一封測試信看看 ,如下圖所示
看看管理員的郵箱,是不是已經收到信了,這證明SMTP工作正常。

?

管理員回封信,看看dufei能否收到,在 OE的“發送/接收”下拉菜單中選擇“接收全部郵件”,看看收件箱里有沒有回信,如下圖所示,已收到回信,POP3工作正常。

?

? Exchange和其他互聯網郵局通信時注意事項

做完上述操作后,我們在Exchange郵局內部已經可以正常使用SMTPPOP3了,但要和其他的互聯網郵局通信還需要注意以下兩點: 1? 設置DNS中的MX記錄

2? 設置SMTP服務器的中繼

?

如果DNS服務器中沒有正確設置MX記錄,那么我們的郵局將無法收到其他郵局發來的郵件。SMTP服務器向其他郵局發送郵件時,要通過查詢DNSMX記錄來定位接收郵局的郵件服務器,否則互聯網上這么多主機,SMTP服務器怎么知道哪臺可以接收郵件?早期的電子郵件地址格式是郵箱名@郵件服務器名,這種郵件地址中已經包含了郵件服務器的完全合格域名,因此SMTP服務器直接將郵件發送給郵件服務器就可以了?,F在的電子郵件地址格式改成了郵箱名@域名,不再直接指明接收郵件的服務器,因此SMTP服務器就只能依靠MX記錄來定位接收郵件服務器了。

?

Exchange服務器中的SMTP中繼默認對所有未通過身份驗證的用戶都是禁用的,所以如果我們向向外網發一封郵件,例如發到[email]yuelei1976@yahoo.com.cn[/email],我們會看到如下圖錯誤提示,提示中明確指出 Unable to relay”,不能中繼。那如何修改設置呢?

?

Exchange服務器上,開始-程序-Microsoft Exchange-系統管理器-服務器-協議-SMTP-默認SMTP虛擬服務器-屬性-訪問-中繼,如下圖

?

當前的中繼設置如下圖所示,只有通過身份驗證的郵件發送者才可以將郵件中繼到其他郵局

?


?

修改中繼設置,允許192.168.2.0子網內的計算機進行郵件中繼,不要設置成允許任何人進行郵件中繼,那會招致大量的垃圾郵件發送

?

改完中繼設置后,重啟SMTP服務,可以把信發往其他的互聯網郵局了。

?

? SMTPPOP3原理分析

?

我們用SMTPPOP3在互聯網上進行郵件收發,郵件傳遞的過程是什么樣的?我們假設163郵局的User1準備給263郵局的User2發信,大致過程如下 1???????? User1通過郵件客戶端軟件用SMTP協議把待發郵件提交到163郵局的SMTP服務器

2???????? 163郵局的SMTP服務器通過查詢DNSMX記錄,定位263郵局的郵件服務器,然后通過SMTP協議把郵件中繼到263郵局的SMTP服務器

3???????? 263郵局的SMTP服務器將郵件入站后,把郵件轉給POP3服務器

4???????POP3服務器把郵件存儲在User2的郵箱中

5???????User2利用郵件客戶端軟件通過POP3協議訪問263郵局的POP3服務器,并從自己的郵箱中把郵件下載到本機計算機

?

接下來我們具體分析一下第一步和第五步,看看OE如何利用SMTP協議提交郵件,以及如何利用POP3協議訪問郵箱。

?

先分析SMTP,根據RPC821SMTP協議提供了一些簡單的四個字符原語操作指令,OE就利用了這些指令發送郵件。常用的SMTP命令有

HELO :發件方問候收件方,后面是發件人的IP地址或計算機名。收件方回答OK時標識自

己的身份。問候和確認過程表明兩臺機器可以進行通信。

MAIL FROM: 這個命令用來開始傳送郵件,命令后面的參數是發件人郵件地址。?????????

RCPT TO: 這個命令告訴收件方收件人的郵箱。當有多個收件人時,需要多次使用該命令,

每次只能指明一個人。

DATA :收件方把該命令之后的數據作為發送的數據,數據被加入數據緩沖區中。????????

RSET :這個命令用來通知收件方復位,所有已存入緩沖區的收件人數據,發件人數據和待

傳送的數據都必須清除,接收放必須回答OK。

NOOP :空操作,不影響任何參數,只是要求接收方回答OK

QUIT SMTP要求接收放必須回答OK,然后中斷傳輸

?

OE發送郵件時,首先連接郵件服務器的25端口,我們在命令行下模擬這個過程

telnet berlin 25

Helo Istanbul (客戶端進行自我介紹,我的名字是Istanbul mail from:admin@sina.com (客戶機請求服務器替自己發一封信,信的發件人是新浪的管理員,這當然是胡說,沒關系的,SMTP服務器并不校驗) rcpt to:administrator@exchtest.com (客戶機描述這封信的收件地址) data (客戶機表示要開始輸入信件內容) subject:mail test!? (客戶機輸入郵件主題 mail test!) Just testting!????? (客戶機輸入郵件內容 Just testting! 敲一下回車 敲一下.() 再敲一下回車 郵件內容結束,郵件開始進入發送隊列 上述過程如下圖所示:

?

?

檢查一下管理員的郵箱,有沒有收到這樣一封信,如下圖所示,真的收到了,而且以為是sina的管理員發來的,要記住,郵件是很容易欺騙的。

這樣我們就用SMTP命令發了一封電子郵件,是不是很簡單呢?其實我們可以來看一下OE發信的過程,打開OE,在 “工具”菜單中選擇“選項”,點擊“維護”標簽,在疑難解答下選擇“郵件”,這樣OE發送郵件時的過程會記錄在日志文件中供我們分析使用。

?

OE中發送一封郵件,測試一下。
郵件發出去了,檢查下圖路徑中的smtp.log,這就是發送郵件時的日志文件

?

?

打開日志文件,里面記錄了OESMTP服務器交互的全過程,[rx]代表OE收到的數據,[tx]代表OE發出的數據,仔細看看,OE作的操作和我們剛剛在命令行中作的完全一樣。

?

?

我們再來分析一下OE利用POP3協議從Exchange郵件服務器收信的過程,POP3SMTP類似,根據RFC1939也定義了一些四字符的原語命令,常用的POP3命令有 USER? 輸入郵箱名 PASS? 輸入郵箱密碼
STAT?
??顯示郵箱狀態
LIST??
??列出郵箱中的郵件
RETR?
??讀取郵件內容
DELE
???將郵件標記為刪除
NOOP?
空操作,僅返回一個回應
RSET
???中斷當前操作,將標記為刪除的郵件恢復
QUIT????????
退出POP3會話

?

我們舉例從dufei郵箱收信,我們使用下列指令 telnet? berlin? 110 user dufei (準備訪問dufei的郵箱) pass? passW0rd (輸入dufei的郵箱口令) list (列出郵箱中的郵件) Retr? 1 (顯示第一封郵件的內容) dele? 1? (刪除第一封郵件) quit? (退出)

?

過程如下圖所示,有興趣的話大家可以結合OE中的POP3日志進行分析。

?

? ESMTP

從前面的SMTP原理分析中我們可以看出,SMTP在設計時完全沒有考慮安全問題,任何人都可以很方便地利用SMTP服務器發送郵件,這種處于安全真空的設計在互聯網的初期是成立的,畢竟那時無孔不入的商業還不曾***進這片專屬于科研人員的凈土。但現在如果在公網上放置這么一個服務器,那肯定會后果很嚴重,垃圾郵件立刻就會把你淹沒。因此,ESMTPSMTP進行了升級,主要是在郵件的發送過程中支持身份驗證,而且在傳輸郵件內容時也支持用SSL進行加密,大大提高了安全性。 Exchange中把SMTP升級到ESMTP很容易,只要在SMTP服務器上禁止匿名訪問,再選擇一種身份驗證方式就可以了。在Exchange服務器上,開始-程序-Microsoft Exchange-系統管理器-服務器-協議-SMTP-默認SMTP虛擬服務器-屬性-訪問-身份驗證,如下圖所示


?

我們取消“匿名訪問”和“集成Windows身份驗證”,只保留“基本身份驗證“,現在這就是一臺ESMTP服務器了,重新啟動SMTP服務,然后在Istanbul上我們發送一封郵件測試一下,如下圖所示,發信出問題了,錯誤提示告訴我們由于沒有進行身份驗證,我們沒有權限進行郵件發送

?

既然要求身份驗證,那我們就滿足這個條件,在OE的工具菜單中選擇賬戶,點擊郵件標簽,查看郵件賬戶的屬性,如下圖所示,勾選“我的服務器要求身份驗證”,點擊“設置”

?

?

在設置中,我們填寫了用戶名和口令,再來試試,發出去了!
調出日志smtp.log查看一下發送細節,看到了一個奇怪的現象,如下圖紅框標示處顯示的是用戶名,但我們填寫的用戶名是dufei,怎么在這里成了ZHVmZWk=?不要著急,這就是我們下面要講到的BASE64編碼

?

BASE64編碼

BASE64編碼其實很簡單,它把常用的64個字符重新做了個編碼表。每個BASE64編碼用62進制數表示,BASE64的編碼表如下

?

?

?

0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y

?

ASCII碼向BASE64的轉換過程中,ASCII碼會每3個為一組轉換為4BASE64編碼,因為每個ASICC碼為8位二進制數,3×824,每個BASE64編碼是6位二進制數,24÷64。

如果ASCII碼字符不正好是3的倍數,例如dufei5ASCII碼,這該怎么辦呢?系統會自動用0進行填充,將ASCII碼湊成3的倍數。如果有1個ASCII碼是被填充的,BASE64編碼中會出現一個=符號,如果有2ASCII嗎是被填充的,BASE64編碼中會出現兩個=號,不可能有三個=出現的,大家仔細想想為什么?

dufei為例,dufeiASCII碼為 100 117 102 101 105, ASCII碼為100 117 102 101 105 。展開成二進制是 01100100? 01110101? 01100110? 01100101? 01101001,每6個一組形成BASE64編碼是 011001 000111 010101 100110? 011001 010110 1001,由于dufei只有5ASCII碼,系統會用0填充為6ASICC碼,填充的結果是011001 000111 010101 100110? 011001 010110 100100 000000,藍色部分為系統填充內容。10進制表示就是 25? 7? 21? 38? 25? 22? 36? ,查詢BASE64編碼表 可知分別對應? ZHVmZWK,最后那個由填充產生的000000用一個=表示。所以最后我們看到的BASE64編碼是ZHVmZWk= 。

?

本文出自 “岳雷的微軟網絡課堂” 博客,請務必保留此出處[url]http://yuelei.blog.51cto.com/202879/76302[/url]本文出自 51CTO.COM技術博客

轉載于:https://blog.51cto.com/dragon82cn/130150

總結

以上是生活随笔為你收集整理的用SMTP,POP3访问Exchange邮箱:Exchange2003系列之六的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。