您好,登錄后才能下訂單哦!
這篇文章主要介紹“LumiSoft怎么收取郵件”,在日常操作中,相信很多人在LumiSoft怎么收取郵件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”LumiSoft怎么收取郵件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在.NET當中利用C#發送電子郵件很簡單,微軟也提供了默認的實現,但是收取電子郵件的操作卻并沒有提供解決方案。好在有一些第三方的解決方案可供選擇,來簡化程序員日常項目中的開發工作。
這里我選用LumiSoft,下載地址為http://www.lumisoft.ee/lswww/download/downloads/。當你打開鏈接,會發現里面有很多項目,為了實現收取郵件的功能,我們可以選擇Examples里面的pop3_client_app.zip文件。我們解壓縮,利用VS打開這個項目運行即可。這是官方提供的一個現成的示例,能夠收取郵件并顯示。
我們打開這個項目bin目錄下的LumiSoft.Net.dll文件,這就是封裝好的一個核心dll。我們可以利用.NET Reflector工具查看這個dll里面的類、方法等。
基本上有了官方源代碼例子以及Reflector工具,我們就可以利用它進行編程實現了。使用方式很簡單,只要在項目中引用LumiSoft.Net.dll這一個文件即可。下面我就直接貼出一段完整的控制臺項目代碼,實現的是收取郵件(顯示)并下載郵件的附件(支持多個附件)到指定目錄下的功能。沒有漂亮的界面,留給讀者自行完善吧。
namespace MailHelper { class Program { static void Main(string[] args) { using (POP3_Client pop3 = new POP3_Client()) { pop3.Connect("pop.qq.com", 995, true); pop3.Login("id", "password");//兩個參數,前者為Email的賬號,后者為Email的密碼 POP3_ClientMessageCollection messages = pop3.Messages; Console.WriteLine("共{0}封郵件", messages.Count); for (int i = 0; i < messages.Count; i++) { POP3_ClientMessage message = messages[i];//轉化為POP3 Console.WriteLine("\r\n正在檢查第{0}封郵件...", i + 1); if (message != null) { byte[] messageBytes = message.MessageToByte(); Mail_Message mime_message = Mail_Message.ParseFromByte(messageBytes); string sender = mime_message.From == null ? "sender is null" : mime_message.From[0].DisplayName; string senderAddress = mime_message.From == null ? "senderAddress is null" : mime_message.From[0].Address; string subject = mime_message.Subject ?? "subject is null"; string recDate = mime_message.Date == DateTime.MinValue ? "date not specified" : mime_message.Date.ToString(); string content = mime_message.BodyText ?? "content is null"; Console.WriteLine("郵件地址為{0}的{1},于{2}發送了主題為{3}的郵件", senderAddress, sender, recDate, subject); Console.WriteLine("內容為{0}", content); MIME_Entity[] p_w_uploads = mime_message.GetAttachments(true, true); foreach (MIME_Entity entity in p_w_uploads) { if (entity.ContentDisposition != null) { string fileName = entity.ContentDisposition.Param_FileName; if (!string.IsNullOrEmpty(fileName)) { DirectoryInfo dir = new DirectoryInfo(@"D:\email\"); if (!dir.Exists) dir.Create(); string path = Path.Combine(dir.FullName, fileName); MIME_b_SinglepartBase byteObj = (MIME_b_SinglepartBase)entity.Body; Stream decodedDataStream = byteObj.GetDataStream(); using (FileStream fs = new FileStream(path, FileMode.Create)) { LumiSoft.Net.Net_Utils.StreamCopy(decodedDataStream, fs, 4000); } Console.WriteLine("{0}已經被下載。", fileName); } } } } } } } } }
效果圖:
到此,關于“LumiSoft怎么收取郵件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。