Esempio n. 1
0
        // 退出登陆
        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, "您还没有保存过邮箱名称和密码信息!暂时无法检索!");
            }
        }
Esempio n. 4
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();
    }