/// <summary> /// 获取邮件 /// </summary> public void MailPop3Client() { //Logger.Log.Info("邮件审批开始..."); //Logger.Log.Info("************************---PopServer=" + PopServer); //Logger.Log.Debug("************************---PopPort=" + PopPort); //Logger.Log.Debug("************************---User="******"************************---Pass="******"************************---UseSSL=" + UseSSL); using (Pop3Client client = new Pop3Client(PopServer, PopPort, UseSSL, User, Pass)) { //显示程序与POP3服务器的通信过程 //client.Trace += new Action<string>(Console.WriteLine); //连接POP3服务器并验证用户身份 Logger.Log.Info("Connect POP3 Server and verify..."); client.Authenticate(); Logger.Log.Info("Verify Success..."); client.Stat(); //枚举所有未读邮件 Logger.Log.Info("Mail Exist..." + client.List()); SpreadtrumLHDEntities Db = new SpreadtrumLHDEntities(); foreach (Pop3ListItem item in client.List()) { MailMessageEx message = null; try { LOTSImportSDLogs lotlogs = new LOTSImportSDLogs(); Logger.Log.Info("RetrMailMessageEx item=" + item.MessageId); message = client.RetrMailMessageEx(item); if (message.Subject.ToLower().StartsWith("[lot judgement]") //&& message.Sender.Address.ToLower() == "*****@*****.**" ) { Logger.Log.Info("RetrMailMessageEx message subject=" + message.Subject); string[] data = getLotData(message.Subject); Logger.Log.Info("RetrMailMessageEx message osat=" + data[2]); Logger.Log.Info("RetrMailMessageEx message Device=" + data[3]); Logger.Log.Info("RetrMailMessageEx message LotNO=" + data[4]); Logger.Log.Info("RetrMailMessageEx message Stage=" + data[5]); Logger.Log.Info("RetrMailMessageEx message DeliveryDate=" + message.DeliveryDate.ToString()); lotlogs.OSAT = data[2]; lotlogs.Device = data[3]; lotlogs.LotNO = data[4]; lotlogs.Stage = data[5]; lotlogs.DeliveryDate = message.DeliveryDate; lotlogs.CreateTime = DateTime.Now; lotlogs.LHDFormatStatus = "Pending"; lotlogs.LHDImportStatus = "Pending"; Db.LOTSImportSDLogs.Add(lotlogs); //Db.Set<LOTSImportSDLogs>().Attach(lotlogs); //Db.Entry(lotlogs).State = EntityState.Added; } client.Dele(item); } catch (Exception ex) { Logger.Log.Error("RetrMailMessageEx error=" + ex); //client.Dele(item); continue; } } Db.SaveChanges(); Logger.Log.Info("邮件处理完毕。"); client.Quit(); } }
/// <summary> /// 获取邮件 /// </summary> public void MailPop3Client() { //Logger.Log.Info("邮件审批开始..."); //Logger.Log.Info("************************---PopServer=" + PopServer); //Logger.Log.Debug("************************---PopPort=" + PopPort); //Logger.Log.Debug("************************---User="******"************************---Pass="******"************************---UseSSL=" + UseSSL); using (Pop3Client client = new Pop3Client(PopServer, PopPort, UseSSL, User, Pass)) { //显示程序与POP3服务器的通信过程 //client.Trace += new Action<string>(Console.WriteLine); //连接POP3服务器并验证用户身份 Logger.Log.Info("Connect POP3 Server and verify..."); client.Authenticate(); Logger.Log.Info("Verify Success..."); client.Stat(); //枚举所有未读邮件 Logger.Log.Info("Mail Exist..." + client.List()); //SpreadtrumLHDEntities Db = new SpreadtrumLHDEntities(); DbOperation dbo = new DbOperation(); foreach (Pop3ListItem item in client.List()) { MailMessageEx message = null; try { LOTSImportSDLogs lotlogs = new LOTSImportSDLogs(); Logger.Log.Info("RetrMailMessageEx item=" + item.MessageId); message = client.RetrMailMessageEx(item); if (message.Subject.ToLower().StartsWith("[lot judgement]") //&& message.Sender.Address.ToLower() == "*****@*****.**" ) { Logger.Log.Info("RetrMailMessageEx message subject=" + message.Subject); string[] data = getLotData(message.Subject); Logger.Log.Info("RetrMailMessageEx message osat=" + data[2]); Logger.Log.Info("RetrMailMessageEx message Device=" + data[3]); Logger.Log.Info("RetrMailMessageEx message LotNO=" + data[4]); Logger.Log.Info("RetrMailMessageEx message Stage=" + data[5]); Logger.Log.Info("RetrMailMessageEx message DeliveryDate=" + message.DeliveryDate.ToString()); //lotlogs.OSAT = data[2]; //lotlogs.Device = data[3]; //lotlogs.LotNO = data[4]; //lotlogs.Stage = data[5]; //lotlogs.DeliveryDate = message.DeliveryDate; //lotlogs.CreateTime = DateTime.Now; //lotlogs.LHDFormatStatus = "Pending"; //lotlogs.LHDImportStatus = "Pending"; //Db.LOTSImportSDLogs.Add(lotlogs); string insertSQL = @"INSERT INTO [dbo].[LOTSImportSDLogs] ([OSAT] ,[Device] ,[LotNO] ,[Stage] ,[DeliveryDate] ,[CreateTime] ,[LHDFormatStatus] ,[LHDImportStatus]) VALUES ('{0}' ,'{1}' ,'{2}' ,'{3}' ,'{4}' ,GETDATE() ,'Pending' ,'Pending');"; //Db.Set<LOTSImportSDLogs>().Attach(lotlogs); //Db.Entry(lotlogs).State = EntityState.Added; dbo.ExecuteNonQuery(string.Format(insertSQL, data[2], data[3], data[4], data[5], message.DeliveryDate.ToString("yyyy-MM-dd HH:mm:ss"))); } client.Dele(item); } catch (Exception ex) { Logger.Log.Error("RetrMailMessageEx error=" + ex); //client.Dele(item); continue; } } //Db.SaveChanges(); Logger.Log.Info("邮件处理完毕。"); client.Quit(); } }