// 退出登陆 private void btnLogout_Click_1(object sender, EventArgs e) { // 断开与POP3服务器的TCP连接 lsttbxStatus.Items.Add("结束会话,进入更新状态..."); SendToServer("QUIT"); lsttbxStatus.Items.Add("正在关闭连接..."); streamReader.Close(); streamWriter.Close(); networkStream.Close(); tcpClient.Close(); // SmtpClient 对象销毁 if (smtpClient != null) { smtpClient.Dispose(); } // POP3Class 对象销毁 // Dimac官网上下载的免费版的Jmail组件 // 在调用Connect方法和Disconnect出现说这个方法没在该组件中定义的错误 // 后面通过网上的答案说下载破解版的Jmail 4.4 Pro后解决了这个问题的。 popClient.Disconnect(); lstViewMailList.Items.Clear(); lsttbxStatus.Items.Add("退出登陆."); lsttbxStatus.TopIndex = lsttbxStatus.Items.Count - 1; tbxMailboxInfo.Text = ""; // 窗口控件控制 tabControlMyMailbox.Enabled = false; richtbxMailContentReview.Text = ""; richtbxMailContentReview.Enabled = false; btnReplyCurrentMail.Enabled = false; btnDelCurrentMail.Enabled = false; tbxUserMail.Enabled = true; txbPassword.Enabled = true; btnLogin.Enabled = true; btnLogout.Enabled = false; tbxSmtpServer.Enabled = true; tbxPOP3Server.Enabled = true; }
void bangemmail() { JumbotOA.BLL.COMDLL com = new JumbotOA.BLL.COMDLL(); JumbotOA.BLL.URLENCRYP urlen = new JumbotOA.BLL.URLENCRYP(); string UserId = JumbotOA.BLL.OA_SysMessageIn.userid(); string username = "", userpwd = "", pstr = ""; string[] str = null; DataTable dt = com.COM_Proc_Sel1("PC_getOA_email", UserId.ToString()); if (dt.Rows.Count != 0) { #region 存储了邮箱 str = dt.Rows[0]["emailname"].ToString().Split("@".ToCharArray()); if (str[1] == "jumbotcms.net") username = str[0].ToString(); else username = dt.Rows[0]["emailname"].ToString(); pstr = dt.Rows[0]["emailname"].ToString(); userpwd = urlen.Decryp(dt.Rows[0]["emailpwd"].ToString()); jmail.POP3Class popMail = new POP3Class(); jmail.Message mailMessage; //取得最大时间 DataTable dts = com.COM_Proc_Sel1("Pc_emailsystem", "," + UserId + ","); string popstr = JumbotOA.BLL.Eemail.GetFormatPop3(pstr).ToString(); int num = 0; try { popMail.Connect(username, userpwd, popstr, 110); //建立连接 if (0 < popMail.Count) { #region 检索今天邮件 DateTime t1= Convert.ToDateTime(DateTime.Now.ToString("yyyy-M-d").ToString() + " 01:00:00"); DateTime t2=Convert.ToDateTime(DateTime.Now.ToString("yyyy-M-d").ToString() + " 23:59:59"); for (int i = popMail.Count; i > 0; i--) { mailMessage = popMail.Messages[i]; if (dts.Rows.Count != 0) { if (mailMessage.Date >= t1 && mailMessage.Date <= t2) num++; else continue; } else { dts.Rows.Clear(); DataRow dr = dts.NewRow(); dr["uid"] = "," + UserId + ","; dr["recivetime"] = DateTime.Now; dr["files"] = popMail.Count.ToString();//邮件总数 dr["contents"] = "0"; dts.Rows.Add(dr); com.COM_Add(dts, "OA_EmailtextTB", "@uid,@recivetime,@files,@contents"); } } #endregion } string titles = ""; switch (str[1]) { case "jumbotcms.net": titles = "http://mail.jumbotcms.net/default.jsp"; break; case "sina.com": titles = "http://mail.sina.com.cn"; break; case "sina.cn": titles = "http://mail.sina.com.cn/cnmail/index.html"; break; case "163.com": titles = "http://email.163.com"; break; case "126.com": titles = "http://email.163.com"; break; case "yeah.net": titles = "http://email.163.com"; break; case "qq.com": titles = "https://mail.qq.com/cgi-bin/loginpage?flowid=16621966528880993"; break; } string Id = dts.Rows[0]["Id"].ToString(); DataRow drw = dts.Rows[0]; drw["recivetime"] = DateTime.Now; drw["titles"] = titles; drw["files"] = popMail.Count.ToString(); drw["contents"] = num.ToString(); com.COM_Up(dts, "OA_EmailtextTB", "recivetime=@recivetime,titles=@titles,files=@files,contents=@contents", Id); popMail.Disconnect(); popMail = null; Tools.Common.JavaScript.MessageBox(this, "检索成功!"); } catch (Exception e) { com.ErroLog(e.ToString()); Tools.Common.JavaScript.MessageBox(this, "检索失败!网络连接已超时!"); } #endregion } else Tools.Common.JavaScript.MessageBox(this, "您还没有保存过邮箱名称和密码信息!暂时无法检索!"); }
void bangemmail() { JumbotOA.BLL.COMDLL com = new JumbotOA.BLL.COMDLL(); JumbotOA.BLL.URLENCRYP urlen = new JumbotOA.BLL.URLENCRYP(); string UserId = JumbotOA.BLL.OA_SysMessageIn.userid(); string username = "", userpwd = "", pstr = ""; string[] str = null; DataTable dt = com.COM_Proc_Sel1("PC_getOA_email", UserId.ToString()); if (dt.Rows.Count != 0) { #region 存储了邮箱 str = dt.Rows[0]["emailname"].ToString().Split("@".ToCharArray()); if (str[1] == "jumbotcms.net") { username = str[0].ToString(); } else { username = dt.Rows[0]["emailname"].ToString(); } pstr = dt.Rows[0]["emailname"].ToString(); userpwd = urlen.Decryp(dt.Rows[0]["emailpwd"].ToString()); jmail.POP3Class popMail = new POP3Class(); jmail.Message mailMessage; //取得最大时间 DataTable dts = com.COM_Proc_Sel1("Pc_emailsystem", "," + UserId + ","); string popstr = JumbotOA.BLL.Eemail.GetFormatPop3(pstr).ToString(); int num = 0; try { popMail.Connect(username, userpwd, popstr, 110); //建立连接 if (0 < popMail.Count) { #region 检索今天邮件 DateTime t1 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-M-d").ToString() + " 01:00:00"); DateTime t2 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-M-d").ToString() + " 23:59:59"); for (int i = popMail.Count; i > 0; i--) { mailMessage = popMail.Messages[i]; if (dts.Rows.Count != 0) { if (mailMessage.Date >= t1 && mailMessage.Date <= t2) { num++; } else { continue; } } else { dts.Rows.Clear(); DataRow dr = dts.NewRow(); dr["uid"] = "," + UserId + ","; dr["recivetime"] = DateTime.Now; dr["files"] = popMail.Count.ToString();//邮件总数 dr["contents"] = "0"; dts.Rows.Add(dr); com.COM_Add(dts, "OA_EmailtextTB", "@uid,@recivetime,@files,@contents"); } } #endregion } string titles = ""; switch (str[1]) { case "jumbotcms.net": titles = "http://mail.jumbotcms.net/default.jsp"; break; case "sina.com": titles = "http://mail.sina.com.cn"; break; case "sina.cn": titles = "http://mail.sina.com.cn/cnmail/index.html"; break; case "163.com": titles = "http://email.163.com"; break; case "126.com": titles = "http://email.163.com"; break; case "yeah.net": titles = "http://email.163.com"; break; case "qq.com": titles = "https://mail.qq.com/cgi-bin/loginpage?flowid=16621966528880993"; break; } string Id = dts.Rows[0]["Id"].ToString(); DataRow drw = dts.Rows[0]; drw["recivetime"] = DateTime.Now; drw["titles"] = titles; drw["files"] = popMail.Count.ToString(); drw["contents"] = num.ToString(); com.COM_Up(dts, "OA_EmailtextTB", "recivetime=@recivetime,titles=@titles,files=@files,contents=@contents", Id); popMail.Disconnect(); popMail = null; Tools.Common.JavaScript.MessageBox(this, "检索成功!"); } catch (Exception e) { com.ErroLog(e.ToString()); Tools.Common.JavaScript.MessageBox(this, "检索失败!网络连接已超时!"); } #endregion } else { Tools.Common.JavaScript.MessageBox(this, "您还没有保存过邮箱名称和密码信息!暂时无法检索!"); } }
/// <summary> /// 收取新邮件、不删除老邮件、收取邮件后写入数据库 /// </summary> public static void GetNewMailIntoDataBase(string UserName, string PassWord, string PopServer, int Port, DateTime MaxDate) { //POP3 NewMail = new POP3(); jmail.POP3Class NewMail = new POP3Class(); NewMail.Connect(UserName, PassWord, PopServer, Port); for (int i = 1; i <= NewMail.Count; i++) { //判断是否跟当前最大的时间作比较,大于当前时间就处理 DateTime CurrentEmailDate = DateTime.Now; try { CurrentEmailDate = DateTime.Parse(NewMail.Messages[i].Date.ToString()); } catch { } try { if (CurrentEmailDate.CompareTo(MaxDate) > 0) { string EmailFuJian = ""; for (int j = 0; j < NewMail.Messages[i].Attachments.Count; j++) { NewMail.Messages[i].Charset = "utf-8"; //设置邮件的编码方式 NewMail.Messages[i].Encoding = "utf-8"; //设置邮件的附件编码方式 NewMail.Messages[i].ISOEncodeHeaders = false; //是否将信头编码成iso-8859-1字符集 try { string FileName = DateTime.Now.Ticks.ToString() + NewMail.Messages[i].Attachments[j].Name; //符合上传要求就保存,否则提示文件名未下载 if (ZWL.Common.PublicMethod.IfOkFile(FileName) == true) { NewMail.Messages[i].Attachments[j].SaveToFile(System.Web.HttpContext.Current.Request.MapPath("../UploadFile") + "\\MailAttachments\\" + FileName); } else { System.Web.HttpContext.Current.Response.Write("<script>alert('邮件附件文件:" + NewMail.Messages[i].Attachments[j].Name + " 不符合本服务器文件保存权限设置,禁止下载!已自动跳过本附件!');</script>"); } if (EmailFuJian.Trim().Length > 0) { EmailFuJian = EmailFuJian + "|MailAttachments/" + FileName; } else { EmailFuJian = "MailAttachments/" + FileName; } } catch (Exception e) { System.Web.HttpContext.Current.Response.Write("<script>alert('" + e.Message.ToString() + "');</script>"); } } ZWL.BLL.ERPNetEmail MyModel = new ZWL.BLL.ERPNetEmail(); MyModel.EmailContent = NewMail.Messages[i].Body; MyModel.EmailState = "未读"; MyModel.EmailTitle = NewMail.Messages[i].Subject; MyModel.FromUser = NewMail.Messages[i].FromName + "(" + NewMail.Messages[i].From + ")"; MyModel.FuJian = EmailFuJian; try { MyModel.TimeStr = DateTime.Parse(NewMail.Messages[i].Date.ToString()); } catch { MyModel.TimeStr = DateTime.Now; } MyModel.ToUser = ZWL.Common.PublicMethod.GetSessionValue("UserName"); MyModel.Add(); } } catch (Exception ee) { System.Web.HttpContext.Current.Response.Write("<script>alert('" + ee.Message.ToString() + "');</script>"); } } NewMail.Disconnect(); }