// 刷新邮件列表 private void btnRefreshMailList_Click(object sender, EventArgs e) { // 实例化邮件接收类POP3Class popClient = new POP3Class(); // 连接服务器 popClient.Connect(tbxUserMail.Text, txbPassword.Text, tbxPOP3Server.Text, 110); if (popClient != null) { if (popClient.Count > 0) { lstViewMailList.Items.Clear(); tbxMailboxInfo.Text = "共" + popClient.Count + "封邮件"; for (int i = 0; i < popClient.Count; i++) { messageMail = popClient.Messages[i + 1]; ListViewItem item = new ListViewItem(); item.SubItems.Add(messageMail.From); item.SubItems.Add(messageMail.Subject); attachments = messageMail.Attachments; if (attachments.Count > 0) { item.SubItems.Add(attachments.Count.ToString()); } else { item.SubItems.Add("无"); } item.SubItems.Add(messageMail.Date.ToString()); lstViewMailList.Items.Add(item); } } } }
protected void LinkButton1_Click(object sender, EventArgs e) { POP3Class popmails = new POP3Class(); //建立接收邮箱的对象 Message mailMessage; //邮箱信息接口 try{ string str = ConfigurationManager.ConnectionStrings["jmailConnectionString"].ConnectionString.ToString(); SqlConnection con = new SqlConnection(str); con.Open(); popmails.Connect("*****@*****.**", "xxxx", "pop.163.com", 110);//链接邮箱服务 参数用户名,密码,服务器地址,端口 if (popmails.Count > 0) { for (int i = 1; i < popmails.Count; i++) { string theUid = popmails.GetMessageUID(i); mailMessage = popmails.Messages[i];//获得一条邮件信息 if (!getLocalUID(theUid)) { String s = null; Attachments attachments = mailMessage.Attachments; //建立附件集接口 for (int j = 0; j < attachments.Count; j++) { //根据索引取附件 Attachment attachment = attachments[j]; //附件名 string fileName = attachment.Name; //附件保存在指定路径,不要有同名文件,否则出异常 string road = Server.MapPath("/recieveatt/") + fileName; attachment.SaveToFile(road); s = road + " "; } string insert = "insert into tb_JMail(sendmail,mailtitle,mailcontents,mailtime,idu,att) values('" + DecodeStr(mailMessage.From) + " " + "','" + DecodeStr(mailMessage.Headers.GetHeader("Subject")) + "','" + mailMessage.Body + "','" + mailMessage.Date.ToString("yyyy-MM-dd") + "','" + theUid + "','" + s + "')"; SqlCommand com = new SqlCommand(insert, con); com.ExecuteNonQuery(); } } } showmail(); con.Close(); } catch (Exception ex) { Response.Write(ex.Message); } }
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(); }