net读取exchange数据
大部分的參考是來自MSDN:
http://msdn.microsoft.com/en-us/library/exchangewebservices(EXCHG.80).aspx
2007版的Exchange服務器提供了webservice,我們可以方便的在.NET程序中添加該引用,然后就可以方便的實現郵件的抓取,發送,刪除等功能。我測試是在控制臺程序中使用該webservice,步驟如下:
1 新建一個站點,然后添加 exchange webservice 的引用, 輸入郵件服務器的 OWA 地址:http://yourmailserver/EWS/Services.wsdl ,如果是在公司的內部域中,添加的過程中要求輸入你的域帳號和密碼。
?
?
?
?
?
2 添加成功以后再項目中導入該命名空間以其他必須的命名空間 ;
?
?
3 下面就是具體的代碼,具體的請看注釋:
發送郵件:
?
?1?????????? public?? static?? void? CreateEmail( string? userName,? string? passWord,? string? domain,? string? url,? string? mailFrom,? string? mailTo)
?2???????????? {
?3?????????????? //? Create service binding.
?4?????????????? //? 建立service綁定
?5????????????? ExchangeServiceBinding esb? =?? new? ExchangeServiceBinding();
?6????????????? esb.Credentials? =?? new? NetworkCredential(userName, passWord, domain);
?7????????????? esb.Url? =? url;
?8?
?9?????????????? //? Create the CreateItem request.
10????????????? CreateItemType createItemRequest? =?? new? CreateItemType();
11?
12?????????????? //? Specifiy how the created items are handled
13?????????????? //? 如何處理郵件
14????????????? createItemRequest.MessageDisposition? =? MessageDispositionType.SendAndSaveCopy;
15????????????? createItemRequest.MessageDispositionSpecified? =?? true ;
16?
17?????????????? //? Specify the location of sent items.?
18????????????? createItemRequest.SavedItemFolderId? =?? new? TargetFolderIdType();
19????????????? DistinguishedFolderIdType sentitems? =?? new? DistinguishedFolderIdType();
20????????????? sentitems.Id? =? DistinguishedFolderIdNameType.sentitems;
21????????????? createItemRequest.SavedItemFolderId.Item? =? sentitems;
22?
23?????????????? //? Create the array of items.
24????????????? createItemRequest.Items? =?? new? NonEmptyArrayOfAllItemsType();
25?
26?????????????? //? Create a single e-mail message.
27?????????????? //? 新建一封郵件message對象
28????????????? MessageType message? =?? new? MessageType();
29????????????? message.Subject? =?? " Tommy Test " ;
30????????????? message.Body? =?? new? BodyType();
31????????????? message.Body.BodyType1? =? BodyTypeType.Text;
32????????????? message.Body.Value? =?? " This is tommy's test use exchange webservice " ;
33????????????? message.ItemClass? =?? " IPM.Note " ;
34????????????? message.Sender? =?? new? SingleRecipientType();
35????????????? message.Sender.Item? =?? new? EmailAddressType();
36????????????? message.Sender.Item.EmailAddress? =? mailFrom;
37????????????? message.ToRecipients? =?? new? EmailAddressType[ 1 ];
38????????????? message.ToRecipients[ 0 ]? =?? new? EmailAddressType();
39????????????? message.ToRecipients[ 0 ].EmailAddress? =? mailTo;
40????????????? message.Sensitivity? =? SensitivityChoicesType.Normal;
41?
42?????????????? //? Add the message to the array of items to be created.
43????????????? createItemRequest.Items.Items? =?? new? ItemType[ 1 ];
44????????????? createItemRequest.Items.Items[ 0 ]? =? message;
45?
46?????????????? try
47???????????????? {
48?????????????????? //? Send the request to create and send the e-mail item, and get the response.
49????????????????? CreateItemResponseType createItemResponse? =? esb.CreateItem(createItemRequest);
50?
51?????????????????? //? Determine whether the request was a success.
52?????????????????? if? (createItemResponse.ResponseMessages.Items[ 0 ].ResponseClass? ==? ResponseClassType.Error)
53???????????????????? {
54?????????????????????? throw?? new? Exception(createItemResponse.ResponseMessages.Items[ 0 ].MessageText);
55????????????????? }
56?????????????????? else
57???????????????????? {
58????????????????????? Console.WriteLine( " Item was created " );
59????????????????????? Console.ReadLine();
60????????????????? }
61????????????? }
62?????????????? catch? (Exception e)
63???????????????? {
64????????????????? Console.WriteLine(e.Message);
65????????????????? Console.ReadLine();
66????????????? }
67????????? }
?
抓取以及刪除郵件:
? 1??? public?? static?? void? GetMailMessage( string? userName,? string? passWord,? string? domain,? string? url)
? 2???????????? {
? 3?????????????? //? 綁定exchange服務器
? 4????????????? ExchangeServiceBinding exchangeServer? =?? new? ExchangeServiceBinding();
? 5????????????? ICredentials creds? =?? new? NetworkCredential(userName, passWord, domain);
? 6?
? 7?????????????? //? 建立信任連接
? 8????????????? exchangeServer.Credentials? =? creds;
? 9????????????? exchangeServer.Url? =? url;
?10?
?11?????????????? //? 定義郵件的收件箱
?12????????????? DistinguishedFolderIdType[] folderIDArray? =?? new? DistinguishedFolderIdType[ 1 ];
?13????????????? folderIDArray[ 0 ]? =?? new? DistinguishedFolderIdType();
?14????????????? folderIDArray[ 0 ].Id? =? DistinguishedFolderIdNameType.inbox;
?15?
?16????????????? PathToUnindexedFieldType ptuftDisplayName? =?? new? PathToUnindexedFieldType();
?17????????????? ptuftDisplayName.FieldURI? =? UnindexedFieldURIType.folderDisplayName;
?18?
?19????????????? PathToExtendedFieldType pteftComment? =?? new? PathToExtendedFieldType();
?20????????????? pteftComment.PropertyTag? =?? " 0x3004 " ;? //? PR_COMMENT
?21????????????? pteftComment.PropertyType? =? MapiPropertyTypeType.String;
?22?
?23?????????????? //? 定義GetFolderType對象,設置相應屬性
?24????????????? GetFolderType myfoldertype? =?? new? GetFolderType();
?25????????????? myfoldertype.FolderIds? =? folderIDArray;
?26????????????? myfoldertype.FolderShape? =?? new? FolderResponseShapeType();
?27????????????? myfoldertype.FolderShape.BaseShape? =? DefaultShapeNamesType.IdOnly;
?28????????????? myfoldertype.FolderShape.AdditionalProperties? =?? new? BasePathToElementType[ 2 ];
?29????????????? myfoldertype.FolderShape.AdditionalProperties[ 0 ]? =? ptuftDisplayName;
?30????????????? myfoldertype.FolderShape.AdditionalProperties[ 1 ]? =? pteftComment;
?31?
?32?????????????? //? 獲取服務器中的文件夾的集合
?33????????????? GetFolderResponseType myFolder? =? exchangeServer.GetFolder(myfoldertype);
?34?
?35?????????????? //? 獲取收件箱
?36????????????? FolderInfoResponseMessageType firmtInbox? =
?37????????????????? (FolderInfoResponseMessageType)myFolder.ResponseMessages.Items[ 0 ];
?38?
?39?????????????? //? 顯示收件箱
?40????????????? Console.WriteLine( string .Format( " got folder: {0} " , firmtInbox.Folders[ 0 ].DisplayName));
?41?
?42?
?43????????????? PathToUnindexedFieldType ptuftSubject? =?? new? PathToUnindexedFieldType();
?44????????????? ptuftSubject.FieldURI? =? UnindexedFieldURIType.itemSubject;
?45?
?46????????????? PathToUnindexedFieldType ptuftBody? =?? new? PathToUnindexedFieldType();
?47????????????? ptuftBody.FieldURI? =? UnindexedFieldURIType.itemAttachments;
?48?
?49????????????? PathToExtendedFieldType pteftFlagStatus? =?? new? PathToExtendedFieldType();
?50????????????? pteftFlagStatus.PropertyTag? =?? " 0x1090 " ;? //? PR_FLAG_STATUS
?51????????????? pteftFlagStatus.PropertyType? =? MapiPropertyTypeType.Integer;
?52?
?53?????????????? //? 定義FindItemType對象,準備獲取收件箱中的集合
?54????????????? FindItemType findItemRequest? =?? new? FindItemType();
?55????????????? findItemRequest.Traversal? =? ItemQueryTraversalType.Shallow;
?56????????????? findItemRequest.ItemShape? =?? new? ItemResponseShapeType();
?57????????????? findItemRequest.ItemShape.BaseShape? =? DefaultShapeNamesType.AllProperties;
?58?
?59?
?60????????????? findItemRequest.ParentFolderIds? =?? new? FolderIdType[ 1 ];
?61????????????? findItemRequest.ParentFolderIds[ 0 ]? =? firmtInbox.Folders[ 0 ].FolderId;
?62?
?63?????????????? //? 獲取郵件
?64????????????? FindItemResponseType firt? =? exchangeServer.FindItem(findItemRequest);
?65?
?66?????????????? //? 循環迭代每一封郵件
?67?????????????? foreach? (FindItemResponseMessageType firmtMessage? in? firt.ResponseMessages.Items)
?68???????????????? {
?69?????????????????? //? 如果包含郵件,顯示出來
?70?????????????????? if? (firmtMessage.RootFolder.TotalItemsInView? >?? 0 )
?71???????????????????? {
?72?????????????????????? //? 循環迭代每一封郵件詳細信息
?73?????????????????????? foreach? (ItemType it? in? ((ArrayOfRealItemsType)firmtMessage.RootFolder.Item).Items)
?74???????????????????????? {
?75????????????????????????? Console.WriteLine( string .Format( " 郵件標題: {0}? " , it.Subject));
?76????????????????????????? Console.WriteLine( string .Format( " 發件人: {0}? " ,((MessageType)(it)).From.Item.Name));
?77????????????????????????? Console.WriteLine( string .Format( " 收件人: {0}? " , it.DisplayTo));
?78????????????????????????? Console.WriteLine( string .Format( " 抄送: {0}? " , it.DisplayCc));
?79????????????????????????? Console.WriteLine( string .Format( " 大小: {0}? " , it.Size.ToString()));
?80????????????????????????? Console.WriteLine( string .Format( " 重要性: {0}? " , it.Importance.ToString()));
?81????????????????????????? Console.WriteLine( string .Format( " 是否已讀: {0}? " , ((MessageType)(it)).IsRead.ToString()));
?82????????????????????????? Console.WriteLine( string .Format( " 是否有附件: {0}? " , it.HasAttachments.ToString()));
?83?????????????????????????? // Console.WriteLine(string.Format("發送時間:{0}", it.DateTimeSent.ToString()));
?84????????????????????????? Console.WriteLine( string .Format( " 接收時間: {0}? " , it.DateTimeReceived.ToString()));
?85?????????????????????????
?86?????????????????????????
?87?????????????????????????? //? 通過GetItemType對象來得到郵件的正文
?88????????????????????????? GetItemType getItemRequest? =?? new? GetItemType();
?89?????????????????????????? //? 設置必要的屬性
?90????????????????????????? getItemRequest.ItemIds? =?? new? BaseItemIdType[ 1 ];
?91????????????????????????? getItemRequest.ItemIds[ 0 ]? =? (BaseItemIdType)it.ItemId;
?92????????????????????????? getItemRequest.ItemShape? =?? new? ItemResponseShapeType();
?93????????????????????????? getItemRequest.ItemShape.BaseShape? =? DefaultShapeNamesType.AllProperties;
?94????????????????????????? getItemRequest.ItemShape.IncludeMimeContent? =?? true ;
?95?
?96?????????????????????????? //? 獲得服務器的相應
?97????????????????????????? GetItemResponseType getItemResponse? =? exchangeServer.GetItem(getItemRequest);
?98?
?99?????????????????????????? //? 得到郵件體
100????????????????????????? ItemInfoResponseMessageType getItemResponseMessage? =
101??????????????????????????????????????????????? getItemResponse.ResponseMessages.Items[ 0 ]? as
102??????????????????????????????????????????????? ItemInfoResponseMessageType;
103?
104?????????????????????????? //? 顯示郵件正文
105????????????????????????? Console.WriteLine( " 郵件格式:{0} " , getItemResponseMessage.Items.Items[ 0 ].Body.BodyType1);
106????????????????????????? Console.WriteLine( string .Format( " 正文:{0} " , getItemResponseMessage.Items.Items[ 0 ].Body.Value));
107?
108?????????????????????????? //? 獲取當前郵件的附件集合
109?????????????????????????? if? (getItemResponseMessage.Items.Items[ 0 ].HasAttachments)
110???????????????????????????? {
111????????????????????????????? AttachmentType[] attachments? =? getItemResponseMessage.Items.Items[ 0 ].Attachments;
112?
113?????????????????????????????? //? 循環獲取當前郵件的每一個附件
114?????????????????????????????? for? ( int? i? =?? 0 ; i? <=? attachments.Length? -?? 1 ;i ++? )
115???????????????????????????????? {
116?????????????????????????????????? //? 定義GetAttachmentType,設置相應的屬性,進行模式驗證來獲取附件
117????????????????????????????????? GetAttachmentType getAttachment? =?? new? GetAttachmentType();
118????????????????????????????????? RequestAttachmentIdType[] attachmentIDArry? =?? new? RequestAttachmentIdType[ 1 ];
119????????????????????????????????? attachmentIDArry[ 0 ]? =?? new? RequestAttachmentIdType();
120????????????????????????????????? attachmentIDArry[ 0 ].Id? =? attachments[i].AttachmentId.Id;
121????????????????????????????????? getAttachment.AttachmentIds? =? attachmentIDArry;
122????????????????????????????????? getAttachment.AttachmentShape? =?? new? AttachmentResponseShapeType();
123?????????????????????????????????
124?????????????????????????????????? //? 獲取附件
125????????????????????????????????? GetAttachmentResponseType getAttachmentResponse? =? exchangeServer.GetAttachment(getAttachment);
126?
127?????????????????????????????????? //? 返回服務器的響應對象
128????????????????????????????????? AttachmentInfoResponseMessageType responseMessage? =? getAttachmentResponse.ResponseMessages.Items[ 0 ]? as? AttachmentInfoResponseMessageType;
129?????????????????????????????????? if? (responseMessage? !=?? null )
130???????????????????????????????????? {
131?????????????????????????????????????? //? 沒有異常,顯示附件信息
132?????????????????????????????????????? if? (responseMessage.ResponseClass? ==? ResponseClassType.Success? &&? responseMessage.Attachments? !=?? null
133????????????????????????????????????????????????????????????? &&? responseMessage.Attachments.Length? >?? 0 )
134???????????????????????????????????????? {
135????????????????????????????????????????? AttachmentType attachment? =? responseMessage.Attachments[ 0 ];
136????????????????????????????????????????? Console.WriteLine( " 附件名:{0}\n " , attachment.Name);
137?????????????????????????????????????????? // Console.WriteLine("附件類型:{0}\n", attachment.ContentId);????????????????????????????????????????????????????
138????????????????????????????????????? }
139????????????????????????????????? }
140????????????????????????????? }
141????????????????????????? }
142?
143?????????????????????????? //? 刪除當前郵件
144????????????????????????? DeleteItemType deleteItem? =?? new? DeleteItemType();
145????????????????????????? deleteItem.ItemIds? =?? new? BaseItemIdType[ 1 ];
146?
147?????????????????????????? //? 將要刪除郵件的ID,changekey賦值給ItemIdType對象
148????????????????????????? ItemIdType itemIDType? =?? new? ItemIdType();
149????????????????????????? itemIDType.Id? =? it.ItemId.Id;
150????????????????????????? itemIDType.ChangeKey? =? it.ItemId.ChangeKey;
151?
152????????????????????????? deleteItem.ItemIds[ 0 ]? =? itemIDType;
153?
154?????????????????????????? //? 執行刪除
155????????????????????????? DeleteItemResponseType deleteResponse? =? exchangeServer.DeleteItem(deleteItem);
156?
157?????????????????????????? //? 刪除成功
158?????????????????????????? if? (deleteResponse.ResponseMessages.Items.Length? >?? 0?? &&? deleteResponse.ResponseMessages.Items[ 0 ].ResponseClass? ==? ResponseClassType.Success)
159???????????????????????????? {
160????????????????????????????? Console.WriteLine( " 刪除成功 " );
161????????????????????????? }
162?????????????????????????
163????????????????????? }
164????????????????? }
165?
166????????????? }
167????????? }
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/thy822/archive/2010/09/09/5873244.aspx
?
?
?
?
?
?
?
?
?
?
?
第一次做webdav方法讀取excahnge郵件方面的東西,將網上查找到的代碼改成了.ascx控件,后臺代碼如下:
?
代碼 using?System;using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Web;
using?System.Web.UI;
using?System.Web.UI.WebControls;
using?System.Net;
using?System.Data;
using?System.Xml;
namespace?SharePoint.Exchange2003
{
????public?class?unreadmailcontrol?:?UserControl
????{
????????GridView?GridView1;
????????protected?void?Page_Load(object?sender,?EventArgs?e)
????????{
????????????try
????????????{
????????????????GridView1?=?(GridView)this.FindControl("GridView1");
????????????????GridView1.DataSource?=?GetUnReadMail();
????????????????GridView1.DataBind();
????????????}
????????????catch?(Exception?ex)
????????????{
????????????}
????????}
????????private?DataTable?GetUnReadMail()
????????{
????????????string?url?=?"http://ip/exchange/";?//指定Exchange服務器地址?
????????????System.Net.HttpWebRequest?Request;
????????????System.Net.WebResponse?Response;
????????????System.Net.CredentialCache?MyCredentialCache;
????????????string?strUserName?=?"administrator";?//指定登錄的用戶名
????????????string?strRootURI?=?url?+?strUserName.Trim()?+?"/收件箱/";?//得到要訪問郵箱的WebDAV地址
????????????string?strPassword?=?"test";?//指定該用戶的密碼
????????????string?strDomain?=?"test";?//指定域名
????????????string?strQuery?=?"";
????????????byte[]?bytes?=?null;
????????????System.IO.Stream?RequestStream?=?null;
????????????System.IO.Stream?ResponseStream?=?null;
????????????XmlDocument?ResponseXmlDoc?=?null;
????????????XmlNodeList?HrefNodes?=?null;
????????????XmlNodeList?SizeNodes?=?null;
????????????int?count?=?0;
????????????try
????????????{
????????????????//?用SQL查詢WebDAV返回結果中的unreadcount節點.
????????????????//strQuery?=?"<?xml?version=\"1.0\"?><D:searchrequest?xmlns:D?=?\"DAV:\"?>"
????????????????//?+?"<D:sql>SELECT?\"DAV:displayname\",\"urn:schemas:httpmail:subject\",\"urn:schemas:httpmail:unreadcount\"?FROM?\""?+?strRootURI?+?"\""
????????????????//?+?"</D:sql></D:searchrequest>";
????????????????strQuery?=?"<?xml?version=\"1.0\"?><D:searchrequest?xmlns:D?=?\"DAV:\"?>"
???????????????????+?"<D:sql>SELECT?\"urn:schemas:httpmail:importance\",\"urn:schemas:httpmail:from\",\"urn:schemas:httpmail:read\",\"urn:schemas:httpmail:datereceived\",\"urn:schemas:httpmail:subject\",\"urn:schemas:httpmail:hasattachment\","
???????????????????+?"\"DAV:contentclass\",\"DAV:getcontentlength\",\"DAV:displayname\""
???????????????????+?"FROM?\""?+?strRootURI?+?"\""
???????????????????+?"WHERE?\"DAV:ishidden\"?=?false?AND?\"DAV:isfolder\"?=?false"
???????????????????+?"</D:sql></D:searchrequest>";
????????????????//?創建新的CredentialCache對象,構建身份憑據
????????????????MyCredentialCache?=?new?System.Net.CredentialCache();
????????????????MyCredentialCache.Add(new?System.Uri(strRootURI),
?????????????????"NTLM",
?????????????????new?System.Net.NetworkCredential(strUserName,?strPassword,?strDomain)
?????????????????);
????????????????//?Create?the?HttpWebRequest?object.
????????????????Request?=?(System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI);
????????????????//?指定HttpWebRequest的身份憑據,此處為關鍵所在。如果使用之前
????????????????//?創建的MyCredentialCache,則這個身份憑據是可以從Web服務器傳遞
????????????????//?到Exchange服務器的,但是這樣帶來的問題也很明顯,就是不能夠自
????????????????//?動獲取當前登錄到域的用戶的身份。即便已經成功登錄到域,那也只
????????????????//?能通過form再次輸入用戶名密碼。因此,我在這里用的是
????????????????//?Request.Credentials?=?CredentialCache.DefaultCredentials,
????????????????//?這樣便可以獲得當前用戶的憑據,但是這樣帶來的問題便是上面提到的
????????????????//?身份憑據無法傳遞的問題,解決方法請關注下篇文章。
????????????????Request.Credentials?=?MyCredentialCache;
????????????????//?指定WebDAV的SEARCH方法
????????????????Request.Method?=?"SEARCH";
????????????????//?Encode?the?body?using?UTF-8.
????????????????bytes?=?Encoding.UTF8.GetBytes((string)strQuery);
????????????????//?Set?the?content?header?length.?This?must?be
????????????????//?done?before?writing?data?to?the?request?stream.
????????????????Request.ContentLength?=?bytes.Length;
????????????????//?Get?a?reference?to?the?request?stream.
????????????????RequestStream?=?Request.GetRequestStream();
????????????????//?Write?the?SQL?query?to?the?request?stream.
????????????????RequestStream.Write(bytes,?0,?bytes.Length);
????????????????//?Close?the?Stream?object?to?release?the?connection
????????????????//?for?further?use.
????????????????RequestStream.Close();
????????????????//?Set?the?content?type?header.
????????????????Request.ContentType?=?"text/xml";
????????????????//?Send?the?SEARCH?method?request?and?get?the
????????????????//?response?from?the?server.
????????????????Response?=?(HttpWebResponse)Request.GetResponse();
????????????????//?Get?the?XML?response?stream.
????????????????ResponseStream?=?Response.GetResponseStream();
????????????????//?創建XmlDocument對象,并獲取收件箱的unreadcount節點的值
????????????????ResponseXmlDoc?=?new?XmlDocument();
????????????????ResponseXmlDoc.Load(ResponseStream);
????????????????//HrefNodes?=?ResponseXmlDoc.GetElementsByTagName("a:displayname");
????????????????//SizeNodes?=?ResponseXmlDoc.GetElementsByTagName("d:unreadcount");
????????????????//for?(int?i?=?0;?i?<?HrefNodes.Count;?i++)
????????????????//{
????????????????//????if?(HrefNodes[i].InnerText?==?"收件箱")
????????????????//????????count?=?int.Parse(SizeNodes[i].InnerText);
????????????????//}
????????????????//ResponseStream.Close();
????????????????//Response.Close();
????????????????XmlNodeList?idNodes?=?ResponseXmlDoc.GetElementsByTagName("a:displayname");
????????????????XmlNodeList?SenderNodes?=?ResponseXmlDoc.GetElementsByTagName("d:from");
????????????????XmlNodeList?importanceNodes?=?ResponseXmlDoc.GetElementsByTagName("d:importance");
????????????????XmlNodeList?contextclassNodes?=?ResponseXmlDoc.GetElementsByTagName("a:contentclass");
????????????????XmlNodeList?readNodes?=?ResponseXmlDoc.GetElementsByTagName("d:read");
????????????????XmlNodeList?datareceiveNodes?=?ResponseXmlDoc.GetElementsByTagName("d:datereceived");
????????????????XmlNodeList?subjectNodes?=?ResponseXmlDoc.GetElementsByTagName("d:subject");
????????????????XmlNodeList?getcontentlengthNodes?=?ResponseXmlDoc.GetElementsByTagName("a:getcontentlength");
????????????????XmlNodeList?hasattachmentNodes?=?ResponseXmlDoc.GetElementsByTagName("d:hasattachment");
????????????????XmlNodeList?hrefNodes?=?ResponseXmlDoc.GetElementsByTagName("a:href");
????????????????DataTable?dt?=?new?DataTable();
????????????????dt.Columns.Add("Subject");
????????????????dt.Columns.Add("Href");
????????????????dt.Columns.Add("Time");
????????????????dt.Columns["Time"].DataType?=?Type.GetType("System.DateTime");
????????????????for?(int?j?=?0;?j?<?readNodes.Count;?j++)
????????????????{
????????????????????//if?(readNodes[j].InnerText?==?"1")continue;//只取未讀郵件
????????????????????dt.Rows.Add(subjectNodes[j].InnerText,?hrefNodes[j].InnerText,?DateTime.Parse(datareceiveNodes[j].InnerText));
????????????????}
????????????????ResponseStream.Close();
????????????????Response.Close();
????????????????return?dt;
????????????}
????????????catch
????????????{
????????????????return?null;
????????????}
????????}
????}
}
?
前臺展示頁面(.ascx)如下:
?
代碼 <%@?Control?Language="C#"??Inherits="SharePoint.Exchange2003.unreadmailcontrol,?SharePoint.Exchange2003,?Version=1.0.0.0,?Culture=neutral,?PublicKeyToken=7da4c70ffa3a2438"?%>??<style?type="text/css">
????????img
????????{
????????????border-style:?none;
????????}
????????body
????????{
????????????font-size:?12px;
????????}
????????.td
????????{
????????}
????????a
????????{
????????????text-decoration:?none;
????????????color:?#616161;
????????}
????????#header
????????{
????????????width:?225px;
????????????height:?20px;
????????????background-repeat:?no-repeat;
????????????background-image:?url(/_layouts/images/header.png);
????????????padding-left:?180px;
????????????padding-top:?4px;
????????}
????????#header?a
????????{
????????????color:?#B88A00;
????????}
????????#dataTable
????????{
????????????height:?259px;
????????????width:?223px;
????????????border-style:?solid;
????????????border-width:?1px;
????????????border-color:?Gray;
????????}
????????#mainDiv
????????{
????????????
????????}
????</style>
???
??<div?id="mainDiv">
????????<div?id="header">
????????????<a?href="http://ip/exchange/"?target="_blank">更多...</a></div>
????????<div?id="dataTable">
????????????<asp:GridView?ID="GridView1"?runat="server"?ShowHeader="False"?AutoGenerateColumns="False"
????????????????Width="223px"?RowStyle-Height="23px"?RowStyle-CssClass="td"?AllowPaging="True"
????????????????BorderColor="#CCCCCC"?BorderStyle="Groove">
????????????????<PagerSettings?Visible="False"?/>
????????????????<RowStyle?CssClass="td"?Height="23px"></RowStyle>
????????????????<Columns>
????????????????????<asp:TemplateField?ShowHeader="False">
????????????????????????<ItemTemplate>
????????????????????????????<img?alt=""?src="/_layouts/images/email.jpg"?/>
????????????????????????</ItemTemplate>
????????????????????????
????????????????????</asp:TemplateField>
????????????????????<asp:TemplateField?ShowHeader="False"?ItemStyle-Height="23">
????????????????????????<ItemTemplate>
????????????????????????????<div?style="text-overflow:?ellipsis;?white-space:?nowrap;?overflow:?hidden;?width:?145px;
????????????????????????????????padding-left:?3px;">
????????????????????????????????<a?id="LinkButton1"?runat="server"?href='<%#?DataBinder.Eval(Container.DataItem,?"Href")?%>?'
????????????????????????????????????target="_blank">
????????????????????????????????????<%#?DataBinder.Eval(Container.DataItem,?"Subject")?%>
????????????????????????????????</a>
????????????????????????????</div>
????????????????????????</ItemTemplate>
????????????????????????<ItemStyle?Height="23px"></ItemStyle>
????????????????????</asp:TemplateField>
????????????????????<asp:BoundField?DataField="Time"?DataFormatString="{0:MM-dd}">
????????????????????????<ItemStyle?Width="45px"?ForeColor="Gray"?Font-Names="Verdana"?HorizontalAlign="?Center"
????????????????????????????Font-Size="10px"></ItemStyle>
????????????????????</asp:BoundField>
????????????????</Columns>
????????????</asp:GridView>
????????</div>
????</div>
轉載于:https://www.cnblogs.com/ahjxxy/archive/2010/11/14/1876887.html
總結
以上是生活随笔為你收集整理的net读取exchange数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlserver全文索引问题
- 下一篇: 如何用C#在Excel中生成图表?