zoukankan      html  css  js  c++  java
  • C# 接收邮件

     /// <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}
    ", 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);
                }
  • 相关阅读:
    Sys 模块
    Select,poll,epoll复用
    Urllib模块
    多线程模块
    设计模式四:观察者,模板方法,命令,状态,职责链条,解释器,中介者,访问者,策略,备忘录,迭代器
    设计模式三:适配器,桥接,组合,装饰,外观,享元,代理
    设计模式二:建造者,原型,单例
    【Unix 网络编程】TCP状态转换图详解(转)
    Mysql系列:MySql 数据库设计与基本使用
    lombok builder源码解读
  • 原文地址:https://www.cnblogs.com/streamice/p/EAGetMail.html
Copyright © 2011-2022 走看看