/// <summary> /// 收取新邮件、不删除老邮件、收取邮件后写入数据库 /// </summary> public static void GetNewMailIntoDataBase(string UserName,string PassWord,string PopServer,int Port,DateTime MaxDate) { string curpath = Directory.GetCurrentDirectory(); string mailbox = String.Format("{0}\\inbox", curpath); // If the folder is not existed, create it. if (!Directory.Exists(mailbox)) { Directory.CreateDirectory(mailbox); } MailServer oServer = new MailServer(PopServer, UserName, PassWord, ServerProtocol.Pop3); MailClient oClient = new MailClient("TryIt"); // Enable SSL connection. oServer.SSLConnection = true; // Set 995 SSL port oServer.Port = 995; try { oClient.Connect(oServer); MailInfo[] infos = oClient.GetMailInfos(); for (int i = 0; i < infos.Length; i++) { MailInfo info = infos[i]; Console.WriteLine("Index: {0}; Size: {1}; UIDL: {2}", info.Index, info.Size, info.UIDL); System.DateTime d = System.DateTime.Now; System.Globalization.CultureInfo cur = new System.Globalization.CultureInfo("en-US"); string sdate = d.ToString("yyyyMMddHHmmss", cur); // Receive email from POP3 server Mail oMail = oClient.GetMail(info); ZWL.BLL.ERPNetEmail MyModel = new ZWL.BLL.ERPNetEmail(); MyModel.EmailContent = ""; MyModel.EmailState = "未读"; MyModel.EmailContent = oMail.HtmlBody; MyModel.EmailTitle = oMail.Subject; MyModel.FromUser = oMail.From.ToString(); foreach (EAGetMail.Attachment attrachment in oMail.Attachments) { string filefoot = attrachment.Name.Substring(attrachment.Name.LastIndexOf(".") + 1, (attrachment.Name.Length - attrachment.Name.LastIndexOf(".") - 1)); //扩展名 switch (filefoot) { case "doc": MyModel.FuJian = sdate + ".doc"; break; case "docx": MyModel.FuJian = sdate + ".docx"; break; case "xls": MyModel.FuJian = sdate + ".xls"; break; case "xlsx": MyModel.FuJian = sdate + ".xlsx"; break; case "ppt": MyModel.FuJian = sdate + ".ppt"; break; case "pptx": MyModel.FuJian = sdate + ".pptx"; break; case "rar": MyModel.FuJian = sdate + ".rar"; break; case "zip": MyModel.FuJian = sdate + ".zip"; break; case "txt": MyModel.FuJian = sdate + ".txt"; break; case "jpg": MyModel.FuJian = sdate + ".jpg"; break; case "png": MyModel.FuJian = sdate + ".png"; break; } //if (attrachment.Name.Contains(".doc")||attrachment.Name.Contains(".docx")) //{ // MyModel.FuJian = sdate + ".doc"; //} //if (attrachment.Name.Contains(".xls") || attrachment.Name.Contains(".xlsx")) //{ // MyModel.FuJian = sdate + ".xls"; //} //if (attrachment.Name.Contains(".ppt") || attrachment.Name.Contains(".pptx")) //{ // MyModel.FuJian = sdate + ".ppt"; //} //if (attrachment.Name.Contains(".rar")) //{ // MyModel.FuJian = sdate + ".rar"; //} //if (attrachment.Name.Contains(".zip")) //{ // MyModel.FuJian = sdate + ".zip"; //} //if (attrachment.Name.Contains(".txt")) //{ // MyModel.FuJian = sdate + ".txt"; //} string fileName1 = System.Web.HttpContext.Current.Request.MapPath("../UploadFile") + "\\" + MyModel.FuJian; attrachment.SaveAs(fileName1, true); } MyModel.ToUser = ZWL.Common.PublicMethod.GetSessionValue("UserName"); MyModel.TimeStr = oMail.ReceivedDate; MyModel.Add(); Console.WriteLine("From: {0}", oMail.From.ToString()); Console.WriteLine("Subject: {0}\r\n", oMail.Subject); string fileName = System.Web.HttpContext.Current.Request.MapPath("../UploadFile") + "\\" + MyModel.FuJian; // Save email to local disk // oMail.SaveAs(fileName, true); // Mark email as deleted from POP3 server. oClient.Delete(info); } // Quit and pure emails marked as deleted from POP3 server. oClient.Quit(); } catch (Exception ep) { Console.WriteLine(ep.Message); }
原文:http://www.cnblogs.com/streamice/p/EAGetMail.html