示例#1
0
        /// <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();
            }
        }
示例#2
0
        /// <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();
            }
        }