翻譯|行業(yè)資訊|編輯:胡濤|2023-09-25 13:47:41.770|閱讀 129 次
概述:在本文中,我們將探討如何利用強(qiáng)大的 .NET 庫(kù)通過(guò) POP3、IMAP、EWS、Graph API 在 C# 中檢索電子郵件,并以 pst 文件為例從各種格式的離線郵箱存儲(chǔ)中檢索電子郵件。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷售中 >>
相關(guān)鏈接:
構(gòu)建電子郵件處理應(yīng)用程序時(shí),關(guān)鍵步驟之一是設(shè)置可靠且快速的功能來(lái)從收件箱檢索消息。在本文中,我們將探討如何利用強(qiáng)大的 .NET 庫(kù)通過(guò) POP3、IMAP、EWS、Graph API 在 C# 中檢索電子郵件,并以 pst 文件為例從各種格式的離線郵箱存儲(chǔ)中檢索電子郵件。本文附有清晰的代碼示例,您可以使用它們來(lái)測(cè)試該庫(kù)的功能。
Aspose.Email 是用于輕松的開(kāi)發(fā) email 功能的應(yīng)用程序的一組控件,基于 ASP.NET 的Web應(yīng)用、Web服務(wù)和Windows 應(yīng)用。支持 Outlook PST, EML, MSG, and MHT 格式. 允許開(kāi)發(fā)者直接與 SMTP, POP, FTP, 和 MS Exchange 服務(wù)器進(jìn)行工作。支持郵件合并、行事歷、定制郵件標(biāo)題和內(nèi)容、嵌入文件等,Aspose API支持流行文件格式處理,并允許將各類文檔導(dǎo)出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像/多媒體格式。
要從 C# 中的服務(wù)器或郵箱存儲(chǔ)中提取消息,我們將使用Aspose.Email for .NET。這是一個(gè)功能強(qiáng)大的 API 庫(kù),允許開(kāi)發(fā)人員在其 .NET 應(yīng)用程序中使用電子郵件。它提供了一套全面的功能,可在各種場(chǎng)景中處理電子郵件。它簡(jiǎn)化了創(chuàng)建、操作和轉(zhuǎn)換電子郵件、處理電子郵件附件、日歷、聯(lián)系人等以及從郵箱中提取消息并根據(jù)需要管理其內(nèi)容的工作。下載DLL 或使用以下命令從NuGet安裝后,您可以輕松地將 API 實(shí)現(xiàn)到您的項(xiàng)目中:
PM> Install-Package Aspose.Email
通過(guò) POP3 協(xié)議,電子郵件可以從服務(wù)器下載到本地系統(tǒng),從而輕松訪問(wèn)和管理。其功能可以輕松集成到您的應(yīng)用程序中。Aspose.Email for .NET 類用于創(chuàng)建 POP3 客戶端對(duì)象以進(jìn)行消息操作。
以下代碼示例和步驟演示了如何使用 POP3 客戶端連接到 POP3 郵件服務(wù)器、檢索郵件列表以及獲取郵件內(nèi)容:
using Aspose.Email; using Aspose.Email.Clients.Pop3; using (var client = new Pop3Client("pop3.server.com", "username", "password")) { client.SecurityOptions = SecurityOptions.Auto; foreach (var messageInfo in pop3Client.ListMessages()) { var eml = client.FetchMessage(messageInfo.SequenceNumber); } }
您可以進(jìn)一步調(diào)整代碼以滿足您的特定需求,并以所需的方式將獲取的消息內(nèi)容與 .NET 庫(kù)的其他功能結(jié)合使用。
IMAP 是另一種流行的協(xié)議,它提供了一種更加同步和通用的電子郵件訪問(wèn)方法。與 POP3 不同,IMAP 將電子郵件保留在服務(wù)器上,同時(shí)允許您從多個(gè)設(shè)備管理和組織它們。在一臺(tái)設(shè)備上所做的更改會(huì)反映在所有設(shè)備上,從而提供無(wú)縫且一致的電子郵件體驗(yàn)。
Aspose.Email for .NET 為您提供類及其屬性來(lái)連接到 IMAP 郵件服務(wù)器并管理文件夾中的電子郵件。以下代碼示例及其步驟將向您展示如何從服務(wù)器獲取消息:
using Aspose.Email; using Aspose.Email.Clients.Imap; using (var client = new ImapClient("imap.server.com", "username", "password")) { client.SecurityOptions = SecurityOptions.Auto; client.SelectFolder("Inbox"); foreach (var messageInfo in client.ListMessages()) { var eml = client.FetchMessage(messageInfo.UniqueId); } }
對(duì)于與 Microsoft Exchange 服務(wù)器交互的應(yīng)用程序,Aspose.Email for .NET 提供對(duì) EWS 的支持。該協(xié)議有助于高級(jí)操作,包括電子郵件檢索、日歷管理和聯(lián)系人同步。EWS 對(duì)于需要與 Microsoft Exchange 環(huán)境集成的應(yīng)用程序特別有利。
為了連接到 Exchange 服務(wù)器并檢索電子郵件,我們將使用.NET API 的下面提供的代碼示例演示了如何建立與郵箱的連接、列出收件箱文件夾中的郵件,然后獲取每封電子郵件。此過(guò)程使開(kāi)發(fā)人員能夠在其 .NET 應(yīng)用程序中以編程方式高效地訪問(wèn)和操作電子郵件數(shù)據(jù)。
using Aspose.Email; using Aspose.Email.Clients.Exchange.WebService; using (var client = EWSClient.GetEWSClient("http://outlook.office365.com/ews/exchange.asmx", "UserName", "Password")) { foreach(var msgInfo in client.ListMessages(client.MailboxInfo.InboxUri) { var eml = client.FetchMessage(msgInfo.UniqueUri); } }
根據(jù)應(yīng)用程序的要求,您可以對(duì)獲取的 eml 變量執(zhí)行其他處理。這可能包括解析電子郵件標(biāo)頭、提取附件、分析電子郵件正文或使用我們功能豐富的 API 進(jìn)行任何其他相關(guān)操作。
Aspose.Email for .NET 使開(kāi)發(fā)人員能夠利用 Microsoft Graph API 的強(qiáng)大功能進(jìn)行電子郵件檢索。通過(guò)集成 Graph API,您的應(yīng)用程序可以訪問(wèn)統(tǒng)一端點(diǎn)以檢索電子郵件、日歷和聯(lián)系人。當(dāng)您希望創(chuàng)建全面的多功能應(yīng)用程序時(shí),這種集成非常有價(jià)值。
下面給出的代碼示例和步驟演示了如何使用 Microsoft Graph API 處理電子郵件文件夾和消息。它創(chuàng)建一個(gè)圖形客戶端,檢索“收件箱”文件夾,并迭代該文件夾中的消息以獲取每條消息。
using Aspose.Email; using Aspose.Email.Clients.Graph; // Create a Graph client using (var client = GraphClient.GetClient(tokenProvider, "tenant ID")) { var folder = client.ListFolders().FirstOrDefault(folder => folder.DisplayName.Equals("Inbox")); foreach (var msgInfo in client.ListMessages(folder.ItemId)) { var msg = client.FetchMessage(msgInfo.ItemId); } }
我們?nèi)娴?C# 庫(kù)使您能夠創(chuàng)建具有離線郵箱存儲(chǔ)功能的應(yīng)用程序。通過(guò)利用此功能,您可以在本地下載和存儲(chǔ)電子郵件,即使沒(méi)有互聯(lián)網(wǎng)連接也能確保訪問(wèn)。這對(duì)于需要在旅途中無(wú)縫訪問(wèn)電子郵件的用戶特別有用。
該庫(kù)適用于不同格式的獨(dú)立存儲(chǔ),例如 PST、MBOX、OLM、TGZ,但在本文中,我們將考慮從 PST 獲取電子郵件的示例。
為了實(shí)現(xiàn)此功能并離線訪問(wèn)郵箱信息,我們將使用庫(kù)的以下是代碼示例以及從 pst 文件獲取消息的步驟:
首先通過(guò)調(diào)用方法并將 PST 文件的路徑作為參數(shù)傳遞來(lái)創(chuàng)建新的個(gè)人存儲(chǔ)對(duì)象。
通過(guò)對(duì)個(gè)人存儲(chǔ)對(duì)象的方法來(lái)初始化名為“folder”的變量。傳遞字符串“Inbox”作為參數(shù)來(lái)指定要檢索的文件夾的名稱。
使用 foreach 循環(huán)迭代“folder”對(duì)象的方法返回的集合中的每個(gè)“msgInfo”對(duì)象。
在循環(huán)內(nèi),通過(guò)調(diào)用個(gè)人存儲(chǔ)對(duì)象上的屬性作為參數(shù)傳遞,以指定要提取的消息。
該代碼將為文件夾中的每條消息執(zhí)行步驟 3 和 4 中指定的操作。
using Aspose.Email.Mapi; using Aspose.Email.Storage.Pst; using (var pst = PersonalStorage.FromFile("storage.pst")) { var folder = pst.RootFolder.GetSubfolder("Inbox"); foreach(var msgInfo in folder.EnumerateMessages()) { var msg = pst.ExtractMessage(msgInfo.EntryIdString); } }
在本文中,我們學(xué)習(xí)了如何利用Aspose.Email for .NET的強(qiáng)大功能進(jìn)行電子郵件檢索。通過(guò)支持 POP3、IMAP、EWS、Graph API 和離線郵箱存儲(chǔ),該庫(kù)使您能夠自定義應(yīng)用程序的功能以滿足特定需求。無(wú)論您是在開(kāi)發(fā)客戶端應(yīng)用程序、集成工具還是自定義解決方案,我們的 .NET API 都能為您提供創(chuàng)建無(wú)縫且高效的消息處理體驗(yàn)的工具。您可以使用文檔探索 Aspose.Email 的其他功能。
歡迎下載|體驗(yàn)更多Aspose文檔管理產(chǎn)品
獲取更多信息請(qǐng)咨詢 或 加入Aspose技術(shù)交流群(761297826)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn