Example #1
0
        private void receiveMails()
        {
            /*Spartan.Net.Mail.POP3 pop3 = new Spartan.Net.Mail.POP3();
            pop3.Connect(host, port, user, pass);*/
            receiverDone = false;
            int count = -1;
            string dirname;
            string filename;
            BinaryWriter bw;
            FileStream fs;
            BinaryReader br;
            //fs = new FileStream("E:\\redirector\\count.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
            //br = new BinaryReader(fs);
            //count = Int32.Parse(br.ReadString());
            //br.Close();
            //fs.Close();
            lock (this)
            {
                count = Int32.Parse(File.ReadAllText("E:\\redirector\\count.txt"));
            }
            Console.WriteLine("count is " + count);

            while (true)
            {
               // Thread.Sleep(0);
                isReceiverAsleep = false;
                int newMessages = 0;
                int readMessages = 0;

                //pop3.ListMessages(out readMessages, out newMessages);

                OpenPOP.POP3.POPClient popclient = new OpenPOP.POP3.POPClient();
                popclient.Connect(host, port);
                popclient.Authenticate(user, pass);

                newMessages = popclient.GetMessageCount();

                for (int i = 1; i <= newMessages; i++)
                {
                    dirname = "E:\\redirector\\sent_mails\\" + (count + i);
                    Directory.CreateDirectory(dirname);
                    string message = "";
                    //pop3.RetrieveMessage(i, out message);
                    //pop3.DeleteMessage(i);
                    //bool fnsh = true;
                    //OpenPOP.MIMEParser.Message msg = new OpenPOP.MIMEParser.Message(ref fnsh, message);
                    OpenPOP.MIMEParser.Message msg = popclient.GetMessage(i, false);
                    message = msg.From + "\n" + msg.FromEmail + "\n" + msg.Subject + "\n" + msg.DateTimeInfo + "\n" + msg.AttachmentCount + "\n";
                    // Write to approproiate file instead of printing

                    //string show_msg = string.Format(sndr + "::" + subject);
                    //MessageBox.Show(show_msg);
                    for (int j = 1; j < msg.AttachmentCount; j++)
                    {
                        OpenPOP.MIMEParser.Attachment attachment = (OpenPOP.MIMEParser.Attachment)msg.Attachments[j];
                        message = message + attachment.ContentFileName + "\n";
                        filename = dirname + "\\" + attachment.ContentFileName;
                        msg.SaveAttachment(attachment, filename);
                       /* byte[] bytes = attachment.DecodedAsBytes();
                        filename = dirname + "\\" + attachment.ContentFileName;
                        fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read);
                        bw = new BinaryWriter(fs);
                        bw.Flush();
                        bw.Close();
                        bw.Write(bytes);
                        fs.Close();*/
                        //MessageBox.Show(string.Format("attachment: {0}", attachment.ContentFileName));
                        //MessageBox.Show(attachment_txt);
                    }
                    //msg.SaveAttachments(dirname);
                    if (msg.AttachmentCount > 0)
                    {
                        OpenPOP.MIMEParser.Attachment attachment2 = (OpenPOP.MIMEParser.Attachment)msg.Attachments[0];
                        message = message + attachment2.DecodeAsText();
                    }
                    else
                    {
                        message = message + msg.MessageBody[msg.MessageBody.Count - 1];
                    }
                    filename = dirname + "\\mail.txt";
                    /*fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read);
                    bw = new BinaryWriter(fs);
                    bw.Write(message);
                    bw.Flush();
                    bw.Close();
                    fs.Close();*/
                    File.WriteAllText(filename, message);
                    popclient.DeleteMessage(i);
                    //popclient.DeleteAllMessages();
                    // MessageBox.Show(message);
                }
                popclient.Disconnect();
                //pop3.Disconnect();
                //fs = new FileStream("E:\\redirector\\count.txt", FileMode.Open, FileAccess.Write, FileShare.Read);
                //bw = new BinaryWriter(fs);
                count = count + newMessages;
                string ncount = "" + count;
                lock (this)
                {
                    File.WriteAllText("E:\\redirector\\count.txt", ncount);
                }
                //bw.Write((int)count);
                //bw.Flush();
                //bw.Close();
                //fs.Close();
                isReceiverAsleep = true;
                /*if (closeForm)
                    break;*/
                Thread.Sleep(10000);

                //if (closeForm)
                  //  break;
            }
            receiverDone = true;
        }
Example #2
0
        private void receiveMails()
        {
            /*Spartan.Net.Mail.POP3 pop3 = new Spartan.Net.Mail.POP3();
             * pop3.Connect(host, port, user, pass);*/
            receiverDone = false;
            int          count = -1;
            string       dirname;
            string       filename;
            BinaryWriter bw;
            FileStream   fs;
            BinaryReader br;

            //fs = new FileStream("E:\\redirector\\count.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
            //br = new BinaryReader(fs);
            //count = Int32.Parse(br.ReadString());
            //br.Close();
            //fs.Close();
            lock (this)
            {
                count = Int32.Parse(File.ReadAllText("E:\\redirector\\count.txt"));
            }
            Console.WriteLine("count is " + count);

            while (true)
            {
                // Thread.Sleep(0);
                isReceiverAsleep = false;
                int newMessages  = 0;
                int readMessages = 0;

                //pop3.ListMessages(out readMessages, out newMessages);

                OpenPOP.POP3.POPClient popclient = new OpenPOP.POP3.POPClient();
                popclient.Connect(host, port);
                popclient.Authenticate(user, pass);

                newMessages = popclient.GetMessageCount();

                for (int i = 1; i <= newMessages; i++)
                {
                    dirname = "E:\\redirector\\sent_mails\\" + (count + i);
                    Directory.CreateDirectory(dirname);
                    string message = "";
                    //pop3.RetrieveMessage(i, out message);
                    //pop3.DeleteMessage(i);
                    //bool fnsh = true;
                    //OpenPOP.MIMEParser.Message msg = new OpenPOP.MIMEParser.Message(ref fnsh, message);
                    OpenPOP.MIMEParser.Message msg = popclient.GetMessage(i, false);
                    message = msg.From + "\n" + msg.FromEmail + "\n" + msg.Subject + "\n" + msg.DateTimeInfo + "\n" + msg.AttachmentCount + "\n";
                    // Write to approproiate file instead of printing

                    //string show_msg = string.Format(sndr + "::" + subject);
                    //MessageBox.Show(show_msg);
                    for (int j = 1; j < msg.AttachmentCount; j++)
                    {
                        OpenPOP.MIMEParser.Attachment attachment = (OpenPOP.MIMEParser.Attachment)msg.Attachments[j];
                        message  = message + attachment.ContentFileName + "\n";
                        filename = dirname + "\\" + attachment.ContentFileName;
                        msg.SaveAttachment(attachment, filename);

                        /* byte[] bytes = attachment.DecodedAsBytes();
                         * filename = dirname + "\\" + attachment.ContentFileName;
                         * fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read);
                         * bw = new BinaryWriter(fs);
                         * bw.Flush();
                         * bw.Close();
                         * bw.Write(bytes);
                         * fs.Close();*/
                        //MessageBox.Show(string.Format("attachment: {0}", attachment.ContentFileName));
                        //MessageBox.Show(attachment_txt);
                    }
                    //msg.SaveAttachments(dirname);
                    if (msg.AttachmentCount > 0)
                    {
                        OpenPOP.MIMEParser.Attachment attachment2 = (OpenPOP.MIMEParser.Attachment)msg.Attachments[0];
                        message = message + attachment2.DecodeAsText();
                    }
                    else
                    {
                        message = message + msg.MessageBody[msg.MessageBody.Count - 1];
                    }
                    filename = dirname + "\\mail.txt";

                    /*fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read);
                     * bw = new BinaryWriter(fs);
                     * bw.Write(message);
                     * bw.Flush();
                     * bw.Close();
                     * fs.Close();*/
                    File.WriteAllText(filename, message);
                    popclient.DeleteMessage(i);
                    //popclient.DeleteAllMessages();
                    // MessageBox.Show(message);
                }
                popclient.Disconnect();
                //pop3.Disconnect();
                //fs = new FileStream("E:\\redirector\\count.txt", FileMode.Open, FileAccess.Write, FileShare.Read);
                //bw = new BinaryWriter(fs);
                count = count + newMessages;
                string ncount = "" + count;
                lock (this)
                {
                    File.WriteAllText("E:\\redirector\\count.txt", ncount);
                }
                //bw.Write((int)count);
                //bw.Flush();
                //bw.Close();
                //fs.Close();
                isReceiverAsleep = true;

                /*if (closeForm)
                 *  break;*/
                Thread.Sleep(10000);

                //if (closeForm)
                //  break;
            }
            receiverDone = true;
        }