Esempio n. 1
0
        // 刷新邮件列表
        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);
                    }
                }
            }
        }
Esempio n. 2
0
        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, "您还没有保存过邮箱名称和密码信息!暂时无法检索!");
            }
        }
Esempio n. 5
0
    /// <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();
    }