• 定时扫描邮件系统代码整理


    Outlook定时扫描代码

    private void timer1_Tick(object sender, EventArgs e)
            {
                try
                {
                    var app = new Microsoft.Office.Interop.Outlook.Application();
                    var ns = app.GetNamespace("MAPI");
                    ns.Logon("Outlook", Type.Missing, false, false);
                    MAPIFolder inbox = null;
    
                    for (int j = 1; j <= ns.Folders.Count; j++)
                    {
                        inbox = ns.Folders[j].Folders[1];
                        string adds = inbox.FolderPath.Replace("\\", "").Replace("\", "").Replace("收件箱", "").Trim();
                        for (int i = 1; i <= inbox.Items.Count; i++)
                        {
                            if ((inbox.Items[i] as MailItem).UnRead)
                            {
                                MailItem item = inbox.Items[i] as MailItem;
    
                                SqlParameter[] prms = new SqlParameter[9];
    
                                prms[0] = new SqlParameter("@username", adds);
                                prms[1] = new SqlParameter("@cc", item.CC == null ? "" : item.CC);
                                prms[2] = new SqlParameter("@bcc", item.BCC == null ? "" : item.BCC);
                                prms[3] = new SqlParameter("@subject", item.Subject);
                                prms[4] = new SqlParameter("@content", item.HTMLBody);
                                prms[5] = new SqlParameter("@sender", item.SenderEmailAddress);
                                //prms[6] = new SqlParameter("@atth", item.Attachments.Count);
                                prms[7] = new SqlParameter("@send_datetime", item.CreationTime);
                                prms[8] = new SqlParameter("@to_address", item.To);
    
                                string atth = this.SaveAtth(item, adds);
    
                                 prms[6] = new SqlParameter("@atth", atth);
    
                                int num = DBHelper.ExecuteCommand("uptMail", prms);
    
                                if (num > 0)
                                {
                                    item.UnRead = false;
                                }
                            }
                        }
                    }
    
                    ns.Logoff();
                    Marshal.ReleaseComObject(inbox);
                    Marshal.ReleaseComObject(ns);
                    Marshal.ReleaseComObject(app);
                    inbox = null;
                    ns = null;
                    app = null;
                }
                catch (System.Exception ex)
                {
                    Utility.SendMail("wp126king@126.com");
    
                    if (File.Exists("D:\MailLog\MailLog_" + DateTime.Now.ToString("yyyyMMdd") + ".log"))
                    {
                        string str = "";
                        FileStream fs1 = new FileStream("D:\MailLog\MailLog_" + DateTime.Now.ToString("yyyyMMdd") + ".log", FileMode.Open, FileAccess.Read);
                        StreamReader sr = new StreamReader(fs1);
    
                        str = sr.ReadToEnd();
    
                        sr.Close();
                        fs1.Close();
    
                        FileStream fs = new FileStream("D:\MailLog\MailLog_" + DateTime.Now.ToString("yyyyMMdd") + ".log", FileMode.Open, FileAccess.Write);
                        StreamWriter sw = new StreamWriter(fs);
                        sw.WriteLine(str + ex.Message);
                        sw.Close();
                        fs.Close();
                    }
                    else
                    {
                        FileStream fs = new FileStream("D:\MailLog\MailLog_" + DateTime.Now.ToString("yyyyMMdd") + ".log", FileMode.Create, FileAccess.Write);
                        StreamWriter sw = new StreamWriter(fs);
                        sw.WriteLine(ex.Message);
                        sw.Close();
                        fs.Close();
                    }
    
                    
    
                }
                finally
                {
    
    
                }
            }

    最小化代码

    private void Form1_SizeChanged(object sender, EventArgs e)
            {
                //判断是否选择的是最小化按钮 
                if (WindowState == FormWindowState.Minimized)
                {
                    //托盘显示图标等于托盘图标对象 
                    //注意notifyIcon1是控件的名字而不是对象的名字 
                    notifyIcon1.Icon = new Icon(System.Windows.Forms.Application.StartupPath + "\ico.ico");
                    //隐藏任务栏区图标 
                    this.ShowInTaskbar = false;
                    //图标显示在托盘区 
                    notifyIcon1.Visible = true;
                }
            }
    
            private void notifyIcon1_DoubleClick(object sender, EventArgs e)
            {
                //判断是否已经最小化于托盘 
                if (WindowState == FormWindowState.Minimized)
                {
                    //还原窗体显示 
                    WindowState = FormWindowState.Normal;
                    //激活窗体并给予它焦点 
                    this.Activate();
                    //任务栏区显示图标 
                    this.ShowInTaskbar = true;
                    //托盘区图标隐藏 
                    notifyIcon1.Visible = false;
                }
            }

    Outlook保存附件代码

    public string SaveAtth(MailItem item, string adds) 
            {
                string res = "";
                string path = "D:\work\DecisionWeb\DecisionWeb\PrecompiledWeb\DecisionWeb\MailFile" + adds + "\" + DateTime.Now.ToString("yyyyMMddHHmmss");
                DirectoryInfo di = new DirectoryInfo(path);
                if (!di.Exists) 
                {
                    di.Create();
                }
    
                for (int i = 1; i <= item.Attachments.Count; i++) 
                {
                    item.Attachments[i].SaveAsFile(path + "\" + item.Attachments[i].FileName);
                    res += path + "\" + item.Attachments[i].FileName + "&" + item.Attachments[i].FileName + ";";
                }
    
                if (res.Length > 0) 
                {
                    res = res.Substring(0, res.Length - 1);
                }
    
                return res;
            }

    定时扫描Tomcat代码

    private void timer1_Tick(object sender, EventArgs e)
            {
                try
                {
                    this.timer1.Stop();
                    DataTable dt = Utility.getUser();
                    foreach (DataRow dr in dt.Rows)
                    {
                        HttpWebRequest request = WebRequest.Create(@"http://192.168.1.108:8080/mail/getmail.jsp") as HttpWebRequest;
    
                        request.Method = "post";
    
                        SymmetricMethod sm = new SymmetricMethod();
    
                        // 拼接成请求参数串,并进行编码,成为字节  
                        string postData = "username=" + dr["email"].ToString() + "&pass=" + sm.Decrypto(dr["password"].ToString()) + "&server=" + dr["server"].ToString() + "&port=" + dr["port"].ToString() + "&ssl=" + dr["ssl"].ToString();
                        ASCIIEncoding encoding = new ASCIIEncoding();
                        byte[] byte1 = encoding.GetBytes(postData);
                        // 设置请求的参数形式  
                        request.ContentType = "application/x-www-form-urlencoded";
                        request.Headers.Add("content", "text/html; charset=gbk");
    
                        // 设置请求参数的长度.  
                        request.ContentLength = byte1.Length;
    
                        // 取得发向服务器的流  
                        System.IO.Stream newStream = request.GetRequestStream();
    
                        // 使用 POST 方法请求的时候,实际的参数通过请求的 Body 部分以流的形式传送  
                        newStream.Write(byte1, 0, byte1.Length);
    
                        // 完成后,关闭请求流.  
                        newStream.Close();
    
                        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
                        // 然后可以得到以流的形式表示的回应内容  
                        System.IO.Stream receiveStream
                            = response.GetResponseStream();
    
                        // 还可以将字节流包装为高级的字符流,以便于读取文本内容   
                        // 需要注意编码  
                        System.IO.StreamReader readStream
                            = new System.IO.StreamReader(receiveStream, Encoding.GetEncoding("GB2312"));
    
                        string res = readStream.ReadToEnd();
    
                        // 完成后要关闭字符流,字符流底层的字节流将会自动关闭  
                        response.Close();
                        readStream.Close();
    
                        if (res.Trim().Equals("error"))
                        {
                            this.SendError("ERROR:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "__" + dr["email"].ToString());
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    this.SendError(ex.Message);
                }
                finally 
                {
                    this.timer1.Start();
                }
            }
    
            public void SendError(string ex) 
            {
                Utility.SendMail("wp126king@126.com");
    
                if (File.Exists("D:\MailLog\MailLog_" + DateTime.Now.ToString("yyyyMMdd") + ".log"))
                {
                    string str = "";
                    FileStream fs1 = new FileStream("D:\MailLog\MailLog_" + DateTime.Now.ToString("yyyyMMdd") + ".log", FileMode.Open, FileAccess.Read);
                    StreamReader sr = new StreamReader(fs1);
    
                    str = sr.ReadToEnd();
    
                    sr.Close();
                    fs1.Close();
    
                    FileStream fs = new FileStream("D:\MailLog\MailLog_" + DateTime.Now.ToString("yyyyMMdd") + ".log", FileMode.Open, FileAccess.Write);
                    StreamWriter sw = new StreamWriter(fs);
                    sw.WriteLine(str + ex);
                    sw.Close();
                    fs.Close();
                }
                else
                {
                    FileStream fs = new FileStream("D:\MailLog\MailLog_" + DateTime.Now.ToString("yyyyMMdd") + ".log", FileMode.Create, FileAccess.Write);
                    StreamWriter sw = new StreamWriter(fs);
                    sw.WriteLine(ex);
                    sw.Close();
                    fs.Close();
                }
            }
  • 相关阅读:
    php redis 的使用方法
    各文件系统对单个文件大小的限制
    MySQL优化之COUNT(*)效率
    理解数据库设计范式【转】
    Mysql re-set password, mysql set encode utf8 mysql重置密码,mysql设置存储编码格式
    MBR,boot loader, partition table, backup, recovery, clean 硬盘引导记录,分区表备份,恢复,清空
    LAMP on ubuntu12.04 PHP, Apache2, MySQL, Linux ( with phpmyadmin installed)
    python alembic which comes from SQLalchemy
    Arduino live weather broadcasting 实时天气站
    python schedule processor
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/3740584.html
Copyright © 2020-2023  润新知